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