]> git.mxchange.org Git - friendica.git/blob - doc/API-Mastodon.md
Added whalebird as working client
[friendica.git] / doc / API-Mastodon.md
1 # Mastodon API
2
3 * [Home](help)
4   * [Using the APIs](help/api)
5
6 ## Overview
7
8 Friendica provides the following endpoints defined in [the official Mastodon API reference](https://docs.joinmastodon.org/api/).
9
10 Authentication is the same as described in [Using the APIs](help/api#Authentication).
11
12 ## Clients
13
14 ### Supported apps
15
16 #### Android
17
18 - [AndStatus](http://andstatus.org)
19 - [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma)
20 - [Fedi](https://play.google.com/store/apps/details?id=com.fediverse.app)
21 - [Husky](https://husky.fwgs.ru)
22 - [Roma](https://play.google.com/store/apps/details?id=tech.bigfig.roma)
23 - [Subway Tooter](https://github.com/tateisu/SubwayTooter)
24 - [Tusky](https://tusky.app)
25 - [Twidere](https://github.com/TwidereProject/)
26 - [twitlatte](https://github.com/moko256/twitlatte)
27 - [Yuito](https://github.com/accelforce/Yuito)
28
29 #### iOS
30 - [Amaroq](https://github.com/ReticentJohn/Amaroq/tree/master)
31 - [B4X for Pleroma & Mastodon](https://github.com/AnywhereSoftware/B4X-Pleroma)
32 - [Fedi](https://apps.apple.com/de/app/fedi-for-pleroma-and-mastodon/id1478806281)
33 - [Roma](https://apps.apple.com/de/app/roma-for-pleroma-and-mastodon/id1445328699)
34 - [StarPterano](https://apps.apple.com/de/app/starpterano/id1436972796) Uses an OAuth method where you have to manually copy and paste the provided code.
35 - [Stella](https://apps.apple.com/us/app/stella-for-mastodon-twitter/id921372048?l=ms)
36 - [Tootle](https://apps.apple.com/de/app/tootle-for-mastodon/id1236013466) entered hostname must match in upper/lower case. Currently crashes on "Status" type notifications.
37
38 #### Desktop
39 - [Whalebird](https://whalebird.social)
40
41 ### Unsupported apps
42
43 #### Android
44 - [Fedilab](https://framagit.org/tom79/fedilab) Automatically uses the legacy API, see issue: https://framagit.org/tom79/fedilab/-/issues/520
45 - [Mammut](https://github.com/jamiesanson/Mammut) There are problems with the token request, see issue https://github.com/jamiesanson/Mammut/issues/19
46
47 #### iOS
48 - [Mast](https://github.com/Beesitech/Mast) Doesn't accept the entered instance name. Claims that it is invalid (Message is: "Not a valid instance (may be closed or dead)")
49 - [Toot!](https://apps.apple.com/app/toot/id1229021451)
50
51 #### Other
52
53 - [Halycon](https://www.halcyon.social/) Doesn't load content, creates masses of HTTP requests
54 - [Mastonaut](https://mastonaut.app/)
55 - [Pinafore](https://github.com/nolanlawson/pinafore) Returns message "Error: NetworkError when attempting to fetch resource.. Is this a valid Mastodon instance?"
56
57 ## Entities
58
59 These endpoints use the [Mastodon API entities](https://docs.joinmastodon.org/entities/).
60
61 ## Implemented endpoints
62
63 - [`GET /api/v1/accounts/:id`](https://docs.joinmastodon.org/methods/accounts/#retrieve-information)
64 - [`POST /api/v1/accounts/:id/block`](https://docs.joinmastodon.org/methods/accounts/)
65 - [`POST /api/v1/accounts/:id/follow`](https://docs.joinmastodon.org/methods/accounts/)
66 - [`GET /api/v1/accounts/:id/followers`](https://docs.joinmastodon.org/methods/accounts/)
67 - [`GET /api/v1/accounts/:id/following`](https://docs.joinmastodon.org/methods/accounts/)
68 - [`GET /api/v1/accounts/:id/lists`](https://docs.joinmastodon.org/methods/accounts/)
69 - [`POST /api/v1/accounts/:id/mute`](https://docs.joinmastodon.org/methods/accounts/)
70 - [`POST /api/v1/accounts/:id/note`](https://docs.joinmastodon.org/methods/accounts/)
71 - [`GET /api/v1/accounts/:id/statuses`](https://docs.joinmastodon.org/methods/accounts/)
72 - [`POST /api/v1/accounts/:id/unfollow`](https://docs.joinmastodon.org/methods/accounts/)
73 - [`POST /api/v1/accounts/:id/unblock`](https://docs.joinmastodon.org/methods/accounts/)
74 - [`POST /api/v1/accounts/:id/unmute`](https://docs.joinmastodon.org/methods/accounts/)
75 - [`GET /api/v1/accounts/relationships`](https://docs.joinmastodon.org/methods/accounts/)
76 - [`GET /api/v1/accounts/search`](https://docs.joinmastodon.org/methods/accounts)
77 - [`GET /api/v1/accounts/verify_credentials`](https://docs.joinmastodon.org/methods/accounts)
78 - [`POST /api/v1/apps`](https://docs.joinmastodon.org/methods/apps/)
79 - [`GET /api/v1/apps/verify_credentials`](https://docs.joinmastodon.org/methods/apps/)
80 - [`GET /api/v1/blocks`](https://docs.joinmastodon.org/methods/accounts/blocks/)
81 - [`GET /api/v1/bookmarks`](https://docs.joinmastodon.org/methods/accounts/bookmarks/)
82 - [`GET /api/v1/conversations`](https://docs.joinmastodon.org/methods/timelines/conversations/)
83 - [`DELETE /api/v1/conversations/:id`](https://docs.joinmastodon.org/methods/timelines/conversations/)
84 - [`POST /api/v1/conversations/:id/read`](https://docs.joinmastodon.org/methods/timelines/conversations/)
85 - [`GET /api/v1/custom_emojis`](https://docs.joinmastodon.org/methods/instance/custom_emojis/)
86     - Doesn't return unicode emojis since they aren't using an image URL
87
88
89 - [`GET /api/v1/directory`](https://docs.joinmastodon.org/methods/instance/directory/)
90 - [`GET /api/v1/favourites`](https://docs.joinmastodon.org/methods/accounts/favourites/)
91 - [`GET /api/v1/follow_requests`](https://docs.joinmastodon.org/methods/accounts/follow_requests#pending-follows)
92     - Returned IDs are specific to follow requests
93 - [`POST /api/v1/follow_requests/:id/authorize`](https://docs.joinmastodon.org/methods/accounts/follow_requests#accept-follow)
94     - `:id` is a follow request ID, not a regular account id
95 - [`POST /api/v1/follow_requests/:id/reject`](https://docs.joinmastodon.org/methods/accounts/follow_requests#reject-follow)
96     - `:id` is a follow request ID, not a regular account id
97 - `POST /api/v1/follow_requests/:id/ignore`
98     - Friendica-specific, hides the follow request from the list and prevents the remote contact from retrying.
99     - `:id` is a follow request ID, not a regular account id
100     - Returns a [Relationship](https://docs.joinmastodon.org/entities/relationship) object.
101
102
103 - [`GET /api/v1/instance`](https://docs.joinmastodon.org/methods/instance#fetch-instance)
104 - GET /api/v1/instance/rules Undocumented, returns Terms of Service
105 - [`GET /api/v1/instance/peers`](https://docs.joinmastodon.org/methods/instance#list-of-connected-domains)
106 - [`GET /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
107 - [`POST /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
108 - [`GET /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
109 - [`PUT /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
110 - [`DELETE /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
111 - [`GET /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
112 - [`POST /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
113 - [`DELETE /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
114 - [`POST /api/v1/media`](https://docs.joinmastodon.org/methods/statuses/media/)
115 - [`GET /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
116 - [`PUT /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
117 - [`GET /api/v1/mutes`](https://docs.joinmastodon.org/methods/accounts/mutes/)
118 - [`GET /api/v1/notifications`](https://docs.joinmastodon.org/methods/notifications/)
119 - [`GET /api/v1/notifications/:id`](https://docs.joinmastodon.org/methods/notifications/)
120 - [`POST /api/v1/notifications/clear`](https://docs.joinmastodon.org/methods/notifications/)
121 - [`POST /api/v1/notifications/:id/dismiss`](https://docs.joinmastodon.org/methods/notifications/)
122 - [`GET /api/v1/preferences`](https://docs.joinmastodon.org/methods/accounts/preferences/)
123 - [`POST /api/v1/statuses`](https://docs.joinmastodon.org/methods/statuses/)
124 - [`GET /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
125 - [`DELETE /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
126 - [`GET /api/v1/statuses/:id/context`](https://docs.joinmastodon.org/methods/statuses/)
127 - [`GET /api/v1/statuses/:id/reblogged_by`](https://docs.joinmastodon.org/methods/statuses/)
128 - [`GET /api/v1/statuses/:id/favourited_by`](https://docs.joinmastodon.org/methods/statuses/)
129 - [`POST /api/v1/statuses/:id/favourite`](https://docs.joinmastodon.org/methods/statuses/)
130 - [`POST /api/v1/statuses/:id/unfavourite`](https://docs.joinmastodon.org/methods/statuses/)
131 - [`POST /api/v1/statuses/:id/reblog`](https://docs.joinmastodon.org/methods/statuses/)
132 - [`POST /api/v1/statuses/:id/unreblog`](https://docs.joinmastodon.org/methods/statuses/)
133 - [`POST /api/v1/statuses/:id/bookmark`](https://docs.joinmastodon.org/methods/statuses/)
134 - [`POST /api/v1/statuses/:id/unbookmark`](https://docs.joinmastodon.org/methods/statuses/)
135 - [`POST /api/v1/statuses/:id/mute`](https://docs.joinmastodon.org/methods/statuses/)
136 - [`POST /api/v1/statuses/:id/unmute`](https://docs.joinmastodon.org/methods/statuses/)
137 - [`POST /api/v1/statuses/:id/pin`](https://docs.joinmastodon.org/methods/statuses/)
138 - [`POST /api/v1/statuses/:id/unpin`](https://docs.joinmastodon.org/methods/statuses/)
139 - [`GET /api/v1/suggestions`](https://docs.joinmastodon.org/methods/accounts/suggestions/)
140 - [`GET /api/v1/timelines/direct`](https://docs.joinmastodon.org/methods/timelines/)
141 - [`GET /api/v1/timelines/home`](https://docs.joinmastodon.org/methods/timelines/)
142 - [`GET /api/v1/timelines/list/:id`](https://docs.joinmastodon.org/methods/timelines/)
143 - [`GET /api/v1/timelines/public`](https://docs.joinmastodon.org/methods/timelines/)
144 - [`GET /api/v1/timelines/tag/:hashtag`](https://docs.joinmastodon.org/methods/timelines/)
145 - [`GET /api/v1/trends`](https://docs.joinmastodon.org/methods/instance/trends/)
146 - [`GET /api/v2/search`](https://docs.joinmastodon.org/methods/search/)
147
148
149 ## Currently unimplemented endpoints
150
151 These emdpoints are planned to be implemented somewhere in the future.
152
153 - [`PATCH /api/v1/accounts/update_credentials`](https://docs.joinmastodon.org/methods/accounts/)
154
155 ## Dummy endpoints
156
157 These endpoints are returning empty data to avoid error messages when using third party clients.
158 They refer to features that don't exist in Friendica yet.
159
160 - [`GET /api/v1/accounts/:id/identity_proofs`](https://docs.joinmastodon.org/methods/accounts/)
161 - [`GET /api/v1/announcements`](https://docs.joinmastodon.org/methods/announcements/)
162 - [`GET /api/v1/endorsements`](https://docs.joinmastodon.org/methods/accounts/endorsements/)
163 - [`GET /api/v1/filters`](https://docs.joinmastodon.org/methods/accounts/filters/)
164 - [`GET /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
165 - [`GET /api/v1/scheduled_statuses`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
166
167 ## Non supportable endpoints
168
169 These endpoints won't be implemented at the moment.
170 They refer to features or data that don't exist in Friendica yet.
171
172 - POST /api/meta Misskey API endpoint.
173 - [`POST /api/v1/accounts`](https://docs.joinmastodon.org/methods/accounts/)
174 - [`GET /api/v1/accounts/:id/featured_tags`](https://docs.joinmastodon.org/methods/accounts/)
175 - [`POST /api/v1/accounts/:id/pin`](https://docs.joinmastodon.org/methods/accounts/)
176 - [`POST /api/v1/accounts/:id/unpin`](https://docs.joinmastodon.org/methods/accounts/)
177 - [`GET /api/v1/admin/accounts`](https://docs.joinmastodon.org/methods/admin/)
178 - [`GET /api/v1/admin/accounts/:id`](https://docs.joinmastodon.org/methods/admin/)
179 - [`POST /api/v1/admin/accounts/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
180 - [`GET /api/v1/admin/reports`](https://docs.joinmastodon.org/methods/admin/)
181 - [`GET /api/v1/admin/reports/:id`](https://docs.joinmastodon.org/methods/admin/)
182 - [`POST /api/v1/admin/reports/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
183 - [`POST /api/v1/announcements/:id/dismiss`](https://docs.joinmastodon.org/methods/announcements/)
184 - [`PUT /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
185 - [`DELETE /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
186 - [`GET /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
187 - [`POST /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
188 - [`DELETE /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
189 - [`GET /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
190 - [`POST /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
191 - [`DELETE /api/v1/featured_tags/:id`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
192 - [`GET /api/v1/featured_tags/suggestions`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
193 - [`GET /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
194 - [`POST /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
195 - [`PUT /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
196 - [`DELETE /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
197 - [`GET /api/v1/instance/activity`](https://docs.joinmastodon.org/methods/instance#weekly-activity)
198 - [`POST /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
199 - [`GET /api/v1/polls/:id`](https://docs.joinmastodon.org/methods/statuses/polls/)
200 - [`POST /api/v1/polls/:id/votes`](https://docs.joinmastodon.org/methods/statuses/polls/)
201 - [`DELETE /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
202 - [`GET /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
203 - [`PUSH /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
204 - [`PUT /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
205 - [`POST /api/v1/reports`](https://docs.joinmastodon.org/methods/accounts/reports/)
206 - [`GET /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
207 - [`PUT /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
208 - [`DELETE /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
209 - [`GET /api/v1/streaming`](https://docs.joinmastodon.org/methods/timelines/streaming/)
210 - [`DELETE /api/v1/suggestions/:id`](https://docs.joinmastodon.org/methods/accounts/suggestions/)