{"id":25348553,"url":"https://github.com/markhershey/gmail-paylah","last_synced_at":"2025-04-08T19:55:11.402Z","repository":{"id":208160891,"uuid":"720453037","full_name":"MarkHershey/gmail-paylah","owner":"MarkHershey","description":"Gmail PayLah / Fave / Grab Transaction Notification Email Parser","archived":false,"fork":false,"pushed_at":"2025-01-13T08:27:21.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T15:48:05.192Z","etag":null,"topics":["email","email-exporter","fave","gmail","gmail-api","grab","parser","paylah","singapore"],"latest_commit_sha":null,"homepage":"","language":"Python","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/MarkHershey.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-18T14:34:22.000Z","updated_at":"2025-01-13T08:27:24.000Z","dependencies_parsed_at":"2023-11-20T04:29:18.103Z","dependency_job_id":"1980e2e3-c312-4424-9547-256b16206f01","html_url":"https://github.com/MarkHershey/gmail-paylah","commit_stats":null,"previous_names":["markhershey/gmail-paylah"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkHershey%2Fgmail-paylah","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkHershey%2Fgmail-paylah/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkHershey%2Fgmail-paylah/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkHershey%2Fgmail-paylah/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkHershey","download_url":"https://codeload.github.com/MarkHershey/gmail-paylah/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247918930,"owners_count":21018044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["email","email-exporter","fave","gmail","gmail-api","grab","parser","paylah","singapore"],"created_at":"2025-02-14T15:39:06.913Z","updated_at":"2025-04-08T19:55:11.369Z","avatar_url":"https://github.com/MarkHershey.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gmail-paylah\n\nThis is a Python utility to\n\n1. Export emails from **Gmail**\n2. Parse emails from\n    - **DBS PayLah!** (Singapore)\n    - **Fave** (Singapore)\n    - **Grab** (Singapore)\n3. Extract the transaction details and save to a CSV/JSON file.\n\n## Assumptions\n\n1. Your DBS PayLah! / Fave / Grab account is linked to your Gmail account. Usually, you will receive an email receipt for each transaction.\n2. You are able to enable the Gmail API on your Google account. (Instructions below)\n\n## Usage\n\n### Step 1: Enable Gmail API on your Google account\n\nFollow the instructions [here](https://developers.google.com/gmail/api/quickstart/python#enable_the_api) to enable the Gmail API on your Google account. Follow the steps, including:\n\n-   Enable the API\n-   Configure the OAuth consent screen\n-   Authorize credentials for a desktop application\n-   Download the credentials file and save it as `credentials.json` at the root of this project.\n\nDuring the steps above, you may need to fill in the scopes for the Gmail API. Due to the nature of the project, the script only requires read-only access to your Gmail account. The only scope required by this project is:\n\n| Scope                                            | Description                                                |\n| ------------------------------------------------ | ---------------------------------------------------------- |\n| `https://www.googleapis.com/auth/gmail.readonly` | Read all resources and their metadata—no write operations. |\n\n### Step 2: Setup Python environment for this project\n\n```bash\n# Create a virtual environment\npython3 -m venv venv\n# Activate the virtual environment\nsource venv/bin/activate\n# Install dependencies\npip install -r requirements.txt\n```\n\n### Step 3: Run the script\n\n```bash\npython main.py\n```\n\nThe default outputs are located in the `output` folder.\n\n### Step 4: Further analysis\n\nYou can further analyze the CSV/JSON files using Excel, Google Sheets, or write your own Python scripts.\n\nExample code to analyze the Grab transactions:\n\n```bash\npython analyze_grab.py\n```\n\nExample code to analyze the PayLah! transactions:\n\n```bash\npython analyze_paylah.py\n```\n\n## Disclaimer\n\nUnderstand the script before running it. Use at your own risk.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkhershey%2Fgmail-paylah","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkhershey%2Fgmail-paylah","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkhershey%2Fgmail-paylah/lists"}