{"id":36398501,"url":"https://github.com/dacastro4/laravel-gmail","last_synced_at":"2026-01-11T16:01:35.272Z","repository":{"id":38849321,"uuid":"120019751","full_name":"dacastro4/laravel-gmail","owner":"dacastro4","description":"Laravel wrapper for the Gmail API","archived":false,"fork":false,"pushed_at":"2025-08-19T14:49:28.000Z","size":399,"stargazers_count":310,"open_issues_count":5,"forks_count":151,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-12-31T05:56:25.888Z","etag":null,"topics":["gmail","gmail-api","laravel","laravel-5-package","laravel-gmail"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/dacastro4.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"zenodo":null}},"created_at":"2018-02-02T19:02:34.000Z","updated_at":"2025-10-15T12:43:17.000Z","dependencies_parsed_at":"2024-06-18T13:51:16.872Z","dependency_job_id":"8371ec62-54c0-4b94-b582-84c6e800acf7","html_url":"https://github.com/dacastro4/laravel-gmail","commit_stats":{"total_commits":158,"total_committers":29,"mean_commits":5.448275862068965,"dds":0.3417721518987342,"last_synced_commit":"48653be4d460ba7d4898ad221b2beb967901636f"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/dacastro4/laravel-gmail","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dacastro4%2Flaravel-gmail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dacastro4%2Flaravel-gmail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dacastro4%2Flaravel-gmail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dacastro4%2Flaravel-gmail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dacastro4","download_url":"https://codeload.github.com/dacastro4/laravel-gmail/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dacastro4%2Flaravel-gmail/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28312079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"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":["gmail","gmail-api","laravel","laravel-5-package","laravel-gmail"],"created_at":"2026-01-11T16:00:39.180Z","updated_at":"2026-01-11T16:01:35.236Z","avatar_url":"https://github.com/dacastro4.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel Gmail\n\n[![Build Status](https://scrutinizer-ci.com/g/dacastro4/laravel-gmail/badges/build.png?b=master)](https://scrutinizer-ci.com/g/dacastro4/laravel-gmail/build-status/master)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/dacastro4/laravel-gmail/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/dacastro4/laravel-gmail/?branch=master)\n[![GitHub issues](https://img.shields.io/github/issues/dacastro4/laravel-gmail.svg)](https://github.com/dacastro4/laravel-gmail/issues)\n[![Total Downloads](https://poser.pugx.org/dacastro4/laravel-gmail/downloads)](https://packagist.org/packages/dacastro4/laravel-gmail)\n[![Monthly Downloads](https://poser.pugx.org/dacastro4/laravel-gmail/d/monthly)](https://packagist.org/packages/dacastro4/laravel-gmail)\n[![GitHub license](https://img.shields.io/github/license/dacastro4/laravel-gmail.svg)](https://github.com/dacastro4/laravel-gmail/blob/master/LICENSE)\n\n\n# Gmail\nGmail API for Laravel 9 and 10\n\nYou need to create an application in the [Google Console](https://console.developers.google.com/apis/credentials). Guidance [here](https://developers.google.com/gmail/api/quickstart/php#step_1_turn_on_the_api_name).\n\nif you need **Laravel 5** compatibility please use version `2.0.x`.\nif you need **Laravel 6** compatibility please use version `3.0.x`.\nif you need **Laravel 7** compatibility please use version `4.0.x`.\nif you need **Laravel 8** compatibility please use version `5.0.x`.\n\n# Requirements\n\n* PHP ^8.0\n* Laravel 9\n\n# Installation\n\nAdd dacastro4/laravel-gmail to composer.json.\n\n`\"dacastro4/laravel-gmail\": \"^6.1\"`\n\nRun composer update to pull down the latest version.\n\nOr run\n\n`composer require dacastro4/laravel-gmail`\n\nNow open up `config/app.php` and add the service provider to your providers array.\n\n``` php\n'providers' =\u003e [\n    Dacastro4\\LaravelGmail\\LaravelGmailServiceProvider::class,\n]\n```\n\nNow add the alias.\n\n``` php\n'aliases' =\u003e [\n    'LaravelGmail' =\u003e Dacastro4\\LaravelGmail\\Facade\\LaravelGmail::class,\n]\n```\n\nFor laravel \u003e=5.5 that's all. This package supports Laravel new [Package Discovery](https://laravel.com/docs/5.5/packages#package-discovery).\n\nFor \u003c= PHP 7.4 compatibility use version `v5.0`\n\n# Migration from 5.0 to 6.0\n\nRequires Laravel 9 and you have to change the dependency to `\"laravel/laravel\": \"^9.0\"`\nPlease, follow [Upgrading To 9.0 From 8.x Guide](https://laravel.com/docs/9.x/upgrade)\n\n# Migration from 4.0 to 5.0\n\nRequires Laravel 8 and you have to change the dependency to `\"laravel/laravel\": \"^8.0\"`\nPlease, follow [Upgrading To 8.0 From 7.x Guide](https://laravel.com/docs/8.x/upgrade)\n\n# Migration from 3.0 to 4.0\n\nRequires Laravel 7 and you have to change the dependency to `\"laravel/laravel\": \"^7.0\"`\nPlease, follow [Upgrading To 7.0 From 6.x Guide](https://laravel.com/docs/7.x/upgrade)\n\n# Migration from 2.0 to 3.0\n\nRequires Laravel 6 and you only have to change the dependency to `\"laravel/laravel\": \"^6.0\"`\n\n# Migration from 1.0 to 2.0\nThe only changed made was the multi credentials feature.\n- Change your composer.json from `\"dacastro4/laravel-gmail\": \"^1.0\"` to `\"dacastro4/laravel-gmail\": \"^2.0\"`\n\nI had to change version because of a typo and that might break apps calling those attributes.\n\nAll variable with the word \"threat\" was change to \"thread\" (yeah, I know.. sorry)\nEx:\n\n Mail Class\n    `$threatId` =\u003e `$threadId`\n\n Replyable Class\n    `$mail-\u003esetReplyThreat()` =\u003e `$mail-\u003esetReplyThread()`\n\nand so on.\n\n# Migration from 0.6 to 1.0\nThe only changed made was the multi credentials feature.\n- Change your composer.json from `\"dacastro4/laravel-gmail\": \"^0.6\"` to `\"dacastro4/laravel-gmail\": \"^1.0\"`\n\nIf you don't want the multi user credentials, you don't have to do anything else, if you do, you're going to have to\nlogin again to create a new credentials file per user.\n\n\n# Configuration\n\nYou only have to set the following variables on your `.env` file and you'll be on your way:\n\n``` dotenv\nGOOGLE_PROJECT_ID=\nGOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\nGOOGLE_REDIRECT_URI=\nGOOGLE_ALLOW_MULTIPLE_CREDENTIALS\nGOOGLE_ALLOW_JSON_ENCRYPT\n```\n\nTo modify the scopes and the credentials file name, just run:\n\nRun `php artisan vendor:publish --provider=\"Dacastro4\\LaravelGmail\\LaravelGmailServiceProvider\"` and modify the config file `config/gmail.php`.\n\n### Allow multi user credentials\nTo allow multi user credentials change `allow_multiple_credentials` to `true` in your config file or set the .env variable\n`GOOGLE_ALLOW_MULTIPLE_CREDENTIALS` to true if you're not using the config file.\n### Allow encryption for json files\nTo allow encryption for json files change `allow_json_encrypt` to `true` in your config file or set the .env variable\n`GOOGLE_ALLOW_JSON_ENCRYPT` to true if you're not using the config file.\n\n### Available Scopes\n\n* all *(this one doesn't exists on Gmail Scopes, I added it.)*\n* compose\n* insert\n* labels\n* metadata\n* modify\n* readonly\n* send\n* settings_basic\n* settings_sharing\n\n[More about Gmail API scopes](https://developers.google.com/gmail/api/auth/scopes)\n\nNote: To change the scopes, users have to logout and login again.\n\n#### Additional Scopes\nIf for some reason you need to add additional scopes.\n\nAdd additional scopes in URL Style in config/gmail.php\n\n```\n 'additional_scopes' =\u003e [\n            'https://www.googleapis.com/auth/drive',\n            'https://www.googleapis.com/auth/documents',\n            'https://www.googleapis.com/auth/spreadsheets'\n    ],\n```\n\n\n# Example\n\n## Welcome Blade:\n```blade\n\u003cbody\u003e\n    \u003ch1\u003e{{ LaravelGmail::user() }}\u003c/h1\u003e\n    @if(LaravelGmail::check())\n        \u003ca href=\"{{ url('oauth/gmail/logout') }}\"\u003elogout\u003c/a\u003e\n    @else\n        \u003ca href=\"{{ url('oauth/gmail') }}\"\u003elogin\u003c/a\u003e\n    @endif\n\u003c/body\u003e\n```\n\n## Routes:\n```php\nRoute::get('/oauth/gmail', function (){\n    return LaravelGmail::redirect();\n});\n\nRoute::get('/oauth/gmail/callback', function (){\n    LaravelGmail::makeToken();\n    return redirect()-\u003eto('/');\n});\n\nRoute::get('/oauth/gmail/logout', function (){\n    LaravelGmail::logout(); //It returns exception if fails\n    return redirect()-\u003eto('/');\n});\n```\n\nThen if in your controller or wherever you want to do your logic, you do something like:\n```php\n$messages = LaravelGmail::message()-\u003esubject('test')-\u003eunread()-\u003epreload()-\u003eall();\nforeach ( $messages as $message ) {\n    $body = $message-\u003egetHtmlBody();\n    $subject = $message-\u003egetSubject();\n}\n```\nNote that if you don't preload the messages you have to do something like:\n` $body = $message-\u003eload()-\u003egetSubject();`\nand after that you don't have to call it again.\n\n## Pagination\nUse `$messages-\u003ehasNextPage()` to check whether next page is available. \nUse `$messages-\u003enext()` to get the next page results, which uses the same parameters (result per page, filters, etc.) when you loaded the first page. \nUse `$messages-\u003egetPageToken()` to get the unique identifier for the next page token. This is useful in creating a unique idendifier when storing the result in cache. \nGenerally speaking, it is a bad practice to use API for pagination. It is slow and costly. Therefore, it is recommended to retrieve the cached result moving between pages and only flush the cache when have to. \n\n# Documentation\n\n## Basic\n\n`LaravelGmail::getAuthUrl` Gets the URL to auth the user.\n\n`LaravelGmail::redirect` You can use this as a direct method `\u003ca href=\"{{ LaravelGmail::redirect() }}\"\u003eLogin\u003c/a\u003e`\n\n`LaravelGmail::makeToken()` Set and Save AccessToken in json file (useful in the callback)\n\n`LaravelGmail::logout` Logs out the user\n\n`LaravelGmail::check` Checks if the user is logged in\n\n`LaravelGmail::setUserId($account_id)-\u003emakeToken()` Set and Save AccessToken for $account_id (added v5.1.2)\n\n\n## Sending\n\n```\nuse Dacastro4\\LaravelGmail\\Services\\Message\\Mail;\n\n...\n\n$mail = new Mail;\n```\nFor `to`, `from`, `cc` and `bcc`, you can set an array of emails and name or a string of email and name.\n\n\n`$mail-\u003eusing( $token )` If you don't want to use the token file, you can use this function that sets the token to use in the request. It doesn't refresh\n\n`$mail-\u003eto( $to, $name = null )` sets the recipient email and name as optional\n\n`$mail-\u003efrom( $from, $name = null )` sets sender's email\n\n`$mail-\u003ecc( $cc, $name = null )` sets carbon copy\n\n`$mail-\u003ebcc( $bcc, $name = null )` sets a blind carbon copy\n\n`$mail-\u003esubject( $subject )` sets the subject of the email\n\n`$mail-\u003emessage( $message )` sets the body of the email\n\n`$mail-\u003eview( 'view.name', $dataArray )` sets the body from a blade file\n\n`$mail-\u003emarkdown( 'view.name', $dataArray )` sets the body from a markdown file\n\n`$mail-\u003eattach( ...$path )` add file attachments to the email\n\n`$mail-\u003epriority( $priority )` sets the priority of the email from 1 to 5\n\n`$mail-\u003ereply()` replies to an existent email\n\n`$mail-\u003esend()` sends a new email\n\n`$mail-\u003esetHeader( $header, $value )` sets header to the email\n\n## Mail\n\n`$mail-\u003egetId` returns the email's ID\n\n`$mail-\u003egetInternalDate` returns date in UNIX format\n\n`$mail-\u003egetDate` returns a Carbon date from the header of the email\n\n`$mail-\u003egetLabels` returns an array of all the labels of the email\n\n`$mail-\u003egetHeaders` returns a collection of the header. Each header is an array with two rows key and value\n\n`$mail-\u003egetSubject` returns an string of the subject\n\n`$mail-\u003egetFrom` Returns an array with name and email of sender\n\n`$mail-\u003egetFromName` Returns string of name\n\n`$mail-\u003egetFromEmail` Returns string of email\n\n`$mail-\u003egetTo` Returns an array with name and email of all recipients\n\n`$mail-\u003egetDeliveredTo` Returns the email of the receiver\n\n`$mail-\u003egetPlainTextBody` Returns the plain text version of the email\n\n`$mail-\u003egetRawPlainTextBody` Returns the raw version of the body base64 encrypted\n\n`$mail-\u003ehasAttachments` Returns a boolean if the email has attachments\n\n`$mail-\u003eload` Load all the information of the email (labels, body, headers). You call this function on a single email. To load from the beginning see [preload()](#preload)\n\n`$mail-\u003egetHeader( $headerName, $regex = null )` Returns the header by name. Optionally, you can execute a regex on the value\n\n\n# Labels\n\n`$mail-\u003emarkAsRead` Removes the 'UNREAD' label from the email.\n\n`$mail-\u003emarkAsUnread` Adds the 'UNREAD' label to the email.\n\n`$mail-\u003emarkAsImportant` Adds the 'IMPORTANT' label to the email.\n\n`$mail-\u003emarkAsNotImportant` Removes the 'IMPORTANT' label from the email.\n\n`$mail-\u003eaddStar` Adds the 'STARRED' label to the email.\n\n`$mail-\u003eremoveStar` Removes the 'STARRED' label from the email.\n\n`$mail-\u003esendToTrash` Adds the 'TRASH' label to the email.\n\n`$mail-\u003eremoveFromTrash` Removes the 'TRASH' label from the email.\n\n`$mail-\u003eaddLabel($string|$array)` Add multiple or single label to the email\n\n`$mail-\u003eremoveLabel($string|$array)` Removes multiple or single label from the email\n\n`$mail-\u003egetAttachments()` Get a collection of all the attachments on the email\n\n`$mail-\u003egetAttachmentsWithData()` Get a collection of all the attachments on the email including the data\n\n`Listing`: List all the labels of the email\n\nhttps://developers.google.com/gmail/api/reference/rest/v1/users.labels/list\n\nExample:\n\n``` php\n    $mailbox = new LaravelGmailClass(config(), $account-\u003eid);\n    $labels = $mailbox-\u003elabelsList($userEmail);\n```\n\n`Create`: Create new label on the email with the labelName\n\nhttps://developers.google.com/gmail/api/reference/rest/v1/users.labels/create\n\nExample:\n\n``` php\n    $mailbox = new LaravelGmailClass(config(), LaravelGmail::user());\n\n    $label = new \\Google_Service_Gmail_Label($this);\n    $label-\u003esetMessageListVisibility('show'); `show || hide`\n    $label-\u003esetLabelListVisibility('labelShow'); `labelShow || labelShowIfUnread || labelHide`\n    $label-\u003esetName('labelName');\n    $mailbox-\u003ecreateLabel($userEmail, $label);\n```\n\n`FirstOrCreateLabel`: Create new label on the email with the labelName if it doesn't exist\n\nhttps://developers.google.com/gmail/api/reference/rest/v1/users.labels/create\n\nExample:\n\n``` php\n    $mailbox = new LaravelGmailClass(config(), LaravelGmail::user());\n\n    $label = new \\Google_Service_Gmail_Label($this);\n    $label-\u003esetMessageListVisibility('show'); `show || hide`\n    $label-\u003esetLabelListVisibility('labelShow'); `labelShow || labelShowIfUnread || labelHide`\n    $label-\u003esetName('labelName');\n    $mailbox-\u003efirstOrCreateLabel($userEmail, $label);\n```\n\n\n## Attachment\n\n```\nuse Dacastro4\\LaravelGmail\\Services\\Message\\Attachment\n...\n\n$attachment = new Attachment;\n```\n\n`$attachment-\u003egetId` Returns the ID of the attachment\n\n`$attachment-\u003egetFileName` Returns the file name of the attachment\n\n`$attachment-\u003egetMimeType` Returns the mime type Ex: application/pdf\n\n`$attachment-\u003egetSize` Returns the size of the attachment in bytes\n\n`$attachment-\u003egetData` Get the all the information from the attachment. If you call `getAttachmentsWithData` you won't need this method.\n\n`$attachment-\u003esaveAttachmentTo($path = null, $filename = null, $disk = 'local')` Saves the attachment on the storage folder. You can pass the path, name and disk to use.\n\n\n## Messages\n\n`LaravelGmail::message()-\u003eall( $pageToken = null )` Returns all the emails from the inbox\n\n`LaravelGmail::message()-\u003etake(2)-\u003eall( $pageToken = null )` The `take` method limits the emails coming from the query by the number set\n\n`LaravelGmail::message()-\u003eget( $id )` Returns a single email with all the information\n\n### Modifiers\n\nYou can modify your query with these methods. For example:\n\nTo get all unread emails: `LaravelGmail::message()-\u003eunread()-\u003eall()`\n\n`message()-\u003eunread()`\n\n`message()-\u003efrom( $email )`\n\n`message()-\u003ein( $box = 'inbox' )`\n\n`message()-\u003ehasAttachment()`\n\n`message()-\u003esubject($subject)`\n\n`-\u003eafter($date)` and `-\u003ebefore($date)`\n\n`message()-\u003eraw($query)` for customized queries\n\nAll the possible filters are in the [Filterable Trait](https://github.com/dacastro4/laravel-gmail/blob/master/src/Traits/Filterable.php)\n\nOf course you can use as a fluent api.\n\n``` php\n\n    LaravelGmail::message()\n                -\u003efrom('someone@gmail.com')\n                -\u003eunread()\n                -\u003ein('TRASH')\n                -\u003ehasAttachment()\n                -\u003eall()\n```\n\n## Attachment\n\n```\nuse Dacastro4\\LaravelGmail\\Services\\Message\\Attachment\n...\n\n$attachment = new Attachment;\n```\n\n`$attachment-\u003egetId` Returns the ID of the attachment\n\n`$attachment-\u003egetFileName` Returns the file name of the attachment\n\n`$attachment-\u003egetMimeType` Returns the mime type Ex: application/pdf\n\n`$attachment-\u003egetSize` Returns the size of the attachment in bytes\n\n`$attachment-\u003egetData` Get the all the information from the attachment. If you call `getAttachmentsWithData` you won't need this method.\n\n`$attachment-\u003esaveAttachmentTo($path = null, $filename = null, $disk = 'local')` Saves the attachment on the storage folder. You can pass the path, name and disk to use.\n\n\n## Messages\n\n`LaravelGmail::message()-\u003eall( $pageToken = null )` Returns all the emails from the inbox\n\n`LaravelGmail::message()-\u003etake(2)-\u003eall( $pageToken = null )` The `take` method limits the emails coming from the query by the number set\n\n`LaravelGmail::message()-\u003eget( $id )` Returns a single email with all the information\n\n### Modifiers\n\nYou can modify your query with these methods. For example:\n\nTo get all unread emails: `LaravelGmail::message()-\u003eunread()-\u003eall()`\n\n`message()-\u003eunread()`\n\n`message()-\u003efrom( $email )`\n\n`message()-\u003ein( $box = 'inbox' )`\n\n`message()-\u003ehasAttachment()`\n\n`message()-\u003esubject($subject)`\n\n`-\u003eafter($date)` and `-\u003ebefore($date)`\n\n`message()-\u003eraw($query)` for customized queries\n\nAll the possible filters are in the [Filterable Trait](https://github.com/dacastro4/laravel-gmail/blob/master/src/Traits/Filterable.php)\n\nOf course you can use as a fluent api.\n\n``` php\n\n    LaravelGmail::message()\n                -\u003efrom('someone@gmail.com')\n                -\u003eunread()\n                -\u003ein('TRASH')\n                -\u003ehasAttachment()\n                -\u003eall()\n```\n\n### Preload\n\nYou can preload the body, header and the rest of every single email just by calling this method.\n\n`LaravelGmail::preload()`\n\nExample:\n\n``` php\n\n    LaravelGmail::message()\n                -\u003efrom('someone@gmail.com')\n                -\u003eunread()\n                -\u003ein('TRASH')\n                -\u003ehasAttachment()\n                -\u003epreload()\n                -\u003eall()\n```\n\n### Watch\nhttps://developers.google.com/gmail/api/reference/rest/v1/users/watch\n\nExample:\n\n``` php\n    $mailbox = new LaravelGmailClass(config(), $account-\u003eid);\n\n    // One watch per account + need reinit every 24h+\n    $mailbox-\u003estopWatch('example@gmail.com');\n\n    // Set watch for topic\n    $rq = new \\Google_Service_Gmail_WatchRequest();\n    $rq-\u003esetTopicName('projects/YOUR_PROJECT_ID/topics/gmail');\n    $mailbox-\u003esetWatch('example@gmail.com', $rq);\n```\n\n\n### History\nhttps://developers.google.com/gmail/api/reference/rest/v1/users.history\n\nExample:\n\n``` php\n    $historyList = (new LaravelGmailClass(config(), $account-\u003eid))\n        -\u003ehistoryList($data['emailAddress'], [\n            'startHistoryId' =\u003e $startHistoryId,\n        ]);\n    foreach ($historyList-\u003ehistory as $chunk) {\n        foreach ($chunk-\u003emessages as $msg) {\n            ...\n        }\n    }\n```\n\n\n### Frequent Issues\n\n#### Login Required\n\nIf you're getting the `Login Required` error, try creating the `gmail-json.json` file under `/storage/app/gmail/tokens/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdacastro4%2Flaravel-gmail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdacastro4%2Flaravel-gmail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdacastro4%2Flaravel-gmail/lists"}