{"id":13593820,"url":"https://github.com/mattn/go-mastodon","last_synced_at":"2025-05-14T02:05:04.703Z","repository":{"id":19869838,"uuid":"88139173","full_name":"mattn/go-mastodon","owner":"mattn","description":"mastodon client for golang","archived":false,"fork":false,"pushed_at":"2025-01-17T14:50:19.000Z","size":342,"stargazers_count":619,"open_issues_count":14,"forks_count":89,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-07T20:36:32.494Z","etag":null,"topics":["go","golang","mastodon"],"latest_commit_sha":null,"homepage":"","language":"Go","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/mattn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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":"mattn","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-04-13T07:49:00.000Z","updated_at":"2025-05-05T18:04:54.000Z","dependencies_parsed_at":"2023-01-13T20:38:36.132Z","dependency_job_id":"5aa16be5-88b6-4571-a7d2-5a7712c029a4","html_url":"https://github.com/mattn/go-mastodon","commit_stats":{"total_commits":413,"total_committers":44,"mean_commits":9.386363636363637,"dds":0.5593220338983051,"last_synced_commit":"d74af49e64bec02a672422286b7e6f7efd1648eb"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattn%2Fgo-mastodon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattn%2Fgo-mastodon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattn%2Fgo-mastodon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattn%2Fgo-mastodon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattn","download_url":"https://codeload.github.com/mattn/go-mastodon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254052692,"owners_count":22006716,"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":["go","golang","mastodon"],"created_at":"2024-08-01T16:01:25.016Z","updated_at":"2025-05-14T02:04:59.592Z","avatar_url":"https://github.com/mattn.png","language":"Go","funding_links":["https://github.com/sponsors/mattn"],"categories":["Libraries","Go"],"sub_categories":["Golang"],"readme":"# go-mastodon\n\n[![Build Status](https://github.com/mattn/go-mastodon/workflows/test/badge.svg?branch=master)](https://github.com/mattn/go-mastodon/actions?query=workflow%3Atest)\n[![Codecov](https://codecov.io/gh/mattn/go-mastodon/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-mastodon)\n[![Go Reference](https://pkg.go.dev/badge/github.com/mattn/go-mastodon.svg)](https://pkg.go.dev/github.com/mattn/go-mastodon)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-mastodon)](https://goreportcard.com/report/github.com/mattn/go-mastodon)\n\n\n## Usage\n\nThere are three ways to authenticate users. Fully working examples can be found in the [examples](./examples) directory.\n\n### User Credentials\n\nThis method is the simplest and allows you to use an application registered in your account to interact with the Mastodon API on your behalf.\n\n* Create an application on Mastodon by navigating to: Preferences \u003e Development \u003e New Application\n* Select the necessary scopes\n\n**Working example:** [examples/user-credentials/main.go](./examples/user-credentials/main.go)\n\n### Public Application\n\nPublic applications use application tokens and have limited access to the API, allowing access only to public data.\n\n**Learn more at:** [Mastodon docs](https://docs.joinmastodon.org/client/token/)\n\n**Working example:** [examples/public-application/main.go](./examples/public-application/main.go)\n\n### Application with Client Credentials (OAuth)\n\nThis option allows you to create an application that can interact with the Mastodon API on behalf of a user. It registers the application and requests user authorization to obtain an access token.\n\n**Learn more at:** [Mastodon docs](https://docs.joinmastodon.org/client/authorized/)\n\n**Working example:** [examples/user-oauth-authorization/main.go](./examples/user-oauth-authorization/main.go)\n\n## Status of implementations\n\n* [x] GET /api/v1/accounts/:id\n* [x] GET /api/v1/accounts/verify_credentials\n* [x] PATCH /api/v1/accounts/update_credentials\n* [x] GET /api/v1/accounts/:id/followers\n* [x] GET /api/v1/accounts/:id/following\n* [x] GET /api/v1/accounts/:id/statuses\n* [x] POST /api/v1/accounts/:id/follow\n* [x] POST /api/v1/accounts/:id/unfollow\n* [x] GET /api/v1/accounts/:id/block\n* [x] GET /api/v1/accounts/:id/unblock\n* [x] GET /api/v1/accounts/:id/mute\n* [x] GET /api/v1/accounts/:id/unmute\n* [x] GET /api/v1/accounts/:id/lists\n* [x] GET /api/v1/accounts/relationships\n* [x] GET /api/v1/accounts/search\n* [x] GET /api/v1/apps/verify_credentials\n* [x] GET /api/v1/bookmarks\n* [x] POST /api/v1/apps\n* [x] GET /api/v1/blocks\n* [x] GET /api/v1/conversations\n* [x] DELETE /api/v1/conversations/:id\n* [x] POST /api/v1/conversations/:id/read\n* [x] GET /api/v1/favourites\n* [x] GET /api/v1/filters\n* [x] POST /api/v1/filters\n* [x] GET /api/v1/filters/:id\n* [x] PUT /api/v1/filters/:id\n* [x] DELETE /api/v1/filters/:id\n* [x] GET /api/v1/follow_requests\n* [x] POST /api/v1/follow_requests/:id/authorize\n* [x] POST /api/v1/follow_requests/:id/reject\n* [x] GET /api/v1/followed_tags\n* [x] POST /api/v1/follows\n* [x] GET /api/v1/instance\n* [x] GET /api/v1/instance/activity\n* [x] GET /api/v1/instance/peers\n* [x] GET /api/v1/lists\n* [x] GET /api/v1/lists/:id/accounts\n* [x] GET /api/v1/lists/:id\n* [x] POST /api/v1/lists\n* [x] PUT /api/v1/lists/:id\n* [x] DELETE /api/v1/lists/:id\n* [x] POST /api/v1/lists/:id/accounts\n* [x] DELETE /api/v1/lists/:id/accounts\n* [x] POST /api/v1/media\n* [x] GET /api/v1/mutes\n* [x] GET /api/v1/notifications\n* [x] GET /api/v1/notifications/:id\n* [x] POST /api/v1/notifications/:id/dismiss\n* [x] POST /api/v1/notifications/clear\n* [x] POST /api/v1/push/subscription\n* [x] GET /api/v1/push/subscription\n* [x] PUT /api/v1/push/subscription\n* [x] DELETE /api/v1/push/subscription\n* [x] GET /api/v1/reports\n* [x] POST /api/v1/reports\n* [x] GET /api/v2/search\n* [x] GET /api/v1/statuses/:id\n* [x] GET /api/v1/statuses/:id/context\n* [x] GET /api/v1/statuses/:id/card\n* [x] GET /api/v1/statuses/:id/history\n* [x] GET /api/v1/statuses/:id/reblogged_by\n* [x] GET /api/v1/statuses/:id/source\n* [x] GET /api/v1/statuses/:id/favourited_by\n* [x] POST /api/v1/statuses\n* [x] PUT /api/v1/statuses/:id\n* [x] DELETE /api/v1/statuses/:id\n* [x] POST /api/v1/statuses/:id/reblog\n* [x] POST /api/v1/statuses/:id/unreblog\n* [x] POST /api/v1/statuses/:id/favourite\n* [x] POST /api/v1/statuses/:id/unfavourite\n* [x] POST /api/v1/statuses/:id/bookmark\n* [x] POST /api/v1/statuses/:id/unbookmark\n* [x] GET /api/v1/timelines/home\n* [x] GET /api/v1/timelines/public\n* [x] GET /api/v1/timelines/tag/:hashtag\n* [x] GET /api/v1/timelines/list/:id\n* [x] GET /api/v1/streaming/user\n* [x] GET /api/v1/streaming/public\n* [x] GET /api/v1/streaming/hashtag?tag=:hashtag\n* [x] GET /api/v1/streaming/hashtag/local?tag=:hashtag\n* [x] GET /api/v1/streaming/list?list=:list_id\n* [x] GET /api/v1/streaming/direct\n* [x] GET /api/v1/endorsements\n\n## Installation\n\n```shell\ngo install github.com/mattn/go-mastodon@latest\n```\n\n## License\n\nMIT\n\n## Author\n\nYasuhiro Matsumoto (a.k.a. mattn)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattn%2Fgo-mastodon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattn%2Fgo-mastodon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattn%2Fgo-mastodon/lists"}