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