{"id":28609591,"url":"https://github.com/invokable/laravel-mastodon-api","last_synced_at":"2025-08-17T05:07:19.449Z","repository":{"id":62535183,"uuid":"90835349","full_name":"invokable/laravel-mastodon-api","owner":"invokable","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-21T10:06:58.000Z","size":73,"stargazers_count":26,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-31T18:45:15.433Z","etag":null,"topics":["mastodon"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/revolution/laravel-mastodon-api","language":"PHP","has_issues":false,"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/invokable.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,"zenodo":null},"funding":{"github":["invokable"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2017-05-10T07:43:15.000Z","updated_at":"2025-06-21T10:07:01.000Z","dependencies_parsed_at":"2023-02-15T16:01:16.278Z","dependency_job_id":"ce9828f7-3cb0-4aa6-ab5c-f8117151bcd0","html_url":"https://github.com/invokable/laravel-mastodon-api","commit_stats":{"total_commits":59,"total_committers":2,"mean_commits":29.5,"dds":"0.016949152542372836","last_synced_commit":"869d646a0c1d4d45706b1dfece7c26d5108069ec"},"previous_names":["invokable/laravel-mastodon-api","kawax/laravel-mastodon-api"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/invokable/laravel-mastodon-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invokable%2Flaravel-mastodon-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invokable%2Flaravel-mastodon-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invokable%2Flaravel-mastodon-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invokable%2Flaravel-mastodon-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/invokable","download_url":"https://codeload.github.com/invokable/laravel-mastodon-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invokable%2Flaravel-mastodon-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269014824,"owners_count":24345037,"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","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["mastodon"],"created_at":"2025-06-11T22:01:42.578Z","updated_at":"2025-08-17T05:07:19.421Z","avatar_url":"https://github.com/invokable.png","language":"PHP","funding_links":["https://github.com/sponsors/invokable"],"categories":["PHP"],"sub_categories":[],"readme":"# Mastodon API for Laravel\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/invokable/laravel-mastodon-api)\n\n## Requirements\n- PHP \u003e= 8.2\n- Laravel \u003e= 11.0\n\n## Installation\n\n### Composer\n```\ncomposer require revolution/laravel-mastodon-api\n```\n\n[Socialite](https://github.com/invokable/socialite-mastodon) and [Notification](https://github.com/invokable/laravel-notification-mastodon) packages will also be installed.\n\n## Usage\n\n### Registering an application\n\n#### By Web UI\n1. Go to your Mastodon's user preferences page.\n2. Go to development page.\n\n#### By API\n```php\nuse Revolution\\Mastodon\\Facades\\Mastodon;\n\nclass MastodonController\n{\n    public function app()\n    {\n        $client_name = 'my-app';\n        $redirect_uris = 'https://my-instance/callback';\n        $scopes = 'read write follow';\n        \n        $app_info = Mastodon::domain('https://example.com')\n                            -\u003ecreateApp($client_name, $redirect_uris, $scopes);\n\n        dd($app_info);\n        //[\n        //    'id' =\u003e '',\n        //    'client_id' =\u003e '',\n        //    'client_secret' =\u003e '',\n        //]\n     }\n}\n```\n\n### OAuth authentication\nUse https://github.com/invokable/socialite-mastodon\n\nSave account info.(`id`, `token`, `username`, `acct`...and more.)\n\n### Get statuses\n```php\nuse Revolution\\Mastodon\\Facades\\Mastodon;\n\n$statuses = Mastodon::domain('https://example.com')\n                    -\u003etoken('token')\n                    -\u003estatuses($account_id);\n\ndd($statuses);\n```\n\n### Get one status\n```php\nuse Revolution\\Mastodon\\Facades\\Mastodon;\n\n$status = Mastodon::domain('https://example.com')\n                  -\u003etoken('token')\n                  -\u003estatus($status_id);\n\ndd($status);\n```\n\n### Post status\n```php\nuse Revolution\\Mastodon\\Facades\\Mastodon;\n\nMastodon::domain('https://example.com')-\u003etoken('token');\n$response = Mastodon::createStatus('test1');\n$response = Mastodon::createStatus('test2', ['visibility' =\u003e 'unlisted']);\n\ndd($response);\n```\n\n### Any API by `get` or `post` method\n```php\nuse Revolution\\Mastodon\\Facades\\Mastodon;\n\n$response = Mastodon::domain('https://example.com')\n                    -\u003etoken('token')\n                    -\u003eget('/timelines/public', ['local' =\u003e true]);\n```\n\n```php\nuse Revolution\\Mastodon\\Facades\\Mastodon;\n\n$response = Mastodon::domain('https://example.com')\n                    -\u003etoken('token')\n                    -\u003epost('/follows', ['uri' =\u003e '']);\n```\n\n### Any API can call by `call` method\n```php\nuse Revolution\\Mastodon\\Facades\\Mastodon;\n\n$response = Mastodon::domain('https://example.com')\n                    -\u003etoken('token')\n                    -\u003ecall('DELETE', '/statuses/1');\n```\n\n### Other methods\nCheck public methods in `Contracts/Factory.php`\n\n## Streaming API\nEdit `$token` and `$url` in streaming_example.php\n\n```\nphp ./streaming_example.php\n```\n\n`Ctrl+C` to quit.\n\n## LICENSE\nMIT  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvokable%2Flaravel-mastodon-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finvokable%2Flaravel-mastodon-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvokable%2Flaravel-mastodon-api/lists"}