]> git.mxchange.org Git - friendica.git/blob - doc/API-Mastodon.md
Fixed code structure
[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 For supported apps please have a look at the [FAQ](help/FAQ#clients)
17
18 ### Unsupported apps
19
20 #### Android
21
22 - [Fedilab](https://framagit.org/tom79/fedilab) Automatically uses the legacy API, see issue: https://framagit.org/tom79/fedilab/-/issues/520
23 - [Mammut](https://github.com/jamiesanson/Mammut) There are problems with the token request, see issue https://github.com/jamiesanson/Mammut/issues/19
24
25 #### iOS
26
27 - [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)")
28 - [Toot!](https://apps.apple.com/app/toot/id1229021451)
29
30 ## Entities
31
32 These endpoints use the [Mastodon API entities](https://docs.joinmastodon.org/entities/).
33
34 ## Implemented endpoints
35
36 - [`GET /api/v1/accounts/:id`](https://docs.joinmastodon.org/methods/accounts/#retrieve-information)
37 - [`POST /api/v1/accounts/:id/block`](https://docs.joinmastodon.org/methods/accounts/)
38 - [`POST /api/v1/accounts/:id/follow`](https://docs.joinmastodon.org/methods/accounts/)
39 - [`GET /api/v1/accounts/:id/followers`](https://docs.joinmastodon.org/methods/accounts/)
40 - [`GET /api/v1/accounts/:id/following`](https://docs.joinmastodon.org/methods/accounts/)
41 - [`GET /api/v1/accounts/:id/lists`](https://docs.joinmastodon.org/methods/accounts/)
42 - [`POST /api/v1/accounts/:id/mute`](https://docs.joinmastodon.org/methods/accounts/)
43 - [`POST /api/v1/accounts/:id/note`](https://docs.joinmastodon.org/methods/accounts/)
44 - [`GET /api/v1/accounts/:id/statuses`](https://docs.joinmastodon.org/methods/accounts/)
45 - [`POST /api/v1/accounts/:id/unfollow`](https://docs.joinmastodon.org/methods/accounts/)
46 - [`POST /api/v1/accounts/:id/unblock`](https://docs.joinmastodon.org/methods/accounts/)
47 - [`POST /api/v1/accounts/:id/unmute`](https://docs.joinmastodon.org/methods/accounts/)
48 - [`GET /api/v1/accounts/relationships`](https://docs.joinmastodon.org/methods/accounts/)
49 - [`GET /api/v1/accounts/search`](https://docs.joinmastodon.org/methods/accounts)
50 - [`GET /api/v1/accounts/verify_credentials`](https://docs.joinmastodon.org/methods/accounts)
51 - [`POST /api/v1/apps`](https://docs.joinmastodon.org/methods/apps/)
52 - [`GET /api/v1/apps/verify_credentials`](https://docs.joinmastodon.org/methods/apps/)
53 - [`GET /api/v1/blocks`](https://docs.joinmastodon.org/methods/accounts/blocks/)
54 - [`GET /api/v1/bookmarks`](https://docs.joinmastodon.org/methods/accounts/bookmarks/)
55 - [`GET /api/v1/conversations`](https://docs.joinmastodon.org/methods/timelines/conversations/)
56 - [`DELETE /api/v1/conversations/:id`](https://docs.joinmastodon.org/methods/timelines/conversations/)
57 - [`POST /api/v1/conversations/:id/read`](https://docs.joinmastodon.org/methods/timelines/conversations/)
58 - [`GET /api/v1/custom_emojis`](https://docs.joinmastodon.org/methods/instance/custom_emojis/)
59     - Doesn't return unicode emojis since they aren't using an image URL
60
61
62 - [`GET /api/v1/directory`](https://docs.joinmastodon.org/methods/instance/directory/)
63 - [`GET /api/v1/favourites`](https://docs.joinmastodon.org/methods/accounts/favourites/)
64 - [`GET /api/v1/follow_requests`](https://docs.joinmastodon.org/methods/accounts/follow_requests#pending-follows)
65     - Returned IDs are specific to follow requests
66 - [`POST /api/v1/follow_requests/:id/authorize`](https://docs.joinmastodon.org/methods/accounts/follow_requests#accept-follow)
67     - `:id` is a follow request ID, not a regular account id
68 - [`POST /api/v1/follow_requests/:id/reject`](https://docs.joinmastodon.org/methods/accounts/follow_requests#reject-follow)
69     - `:id` is a follow request ID, not a regular account id
70 - `POST /api/v1/follow_requests/:id/ignore`
71     - Friendica-specific, hides the follow request from the list and prevents the remote contact from retrying.
72     - `:id` is a follow request ID, not a regular account id
73     - Returns a [Relationship](https://docs.joinmastodon.org/entities/relationship) object.
74
75
76 - [`GET /api/v1/instance`](https://docs.joinmastodon.org/methods/instance#fetch-instance)
77 - `GET /api/v1/instance/rules` Undocumented, returns Terms of Service
78 - [`GET /api/v1/instance/peers`](https://docs.joinmastodon.org/methods/instance#list-of-connected-domains)
79 - [`GET /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
80 - [`POST /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
81 - [`GET /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
82 - [`PUT /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
83 - [`DELETE /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
84 - [`GET /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
85 - [`POST /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
86 - [`DELETE /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
87 - [`POST /api/v1/media`](https://docs.joinmastodon.org/methods/statuses/media/)
88 - [`GET /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
89 - [`PUT /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
90 - [`GET /api/v1/mutes`](https://docs.joinmastodon.org/methods/accounts/mutes/)
91 - [`GET /api/v1/notifications`](https://docs.joinmastodon.org/methods/notifications/)
92 - [`GET /api/v1/notifications/:id`](https://docs.joinmastodon.org/methods/notifications/)
93 - [`POST /api/v1/notifications/clear`](https://docs.joinmastodon.org/methods/notifications/)
94 - [`POST /api/v1/notifications/:id/dismiss`](https://docs.joinmastodon.org/methods/notifications/)
95 - [`GET /api/v1/polls/:id`](https://docs.joinmastodon.org/methods/statuses/polls/)
96 - [`GET /api/v1/preferences`](https://docs.joinmastodon.org/methods/accounts/preferences/)
97 - [`DELETE /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
98 - [`GET /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
99 - [`PUSH /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
100 - [`PUT /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
101 - [`GET /api/v1/scheduled_statuses`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
102 - [`DELETE /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
103 - [`GET /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
104 - [`GET /api/v1/search`](https://docs.joinmastodon.org/methods/search/)
105 - [`POST /api/v1/statuses`](https://docs.joinmastodon.org/methods/statuses/)
106     - Additionally to the static values `public`, `unlisted` and `private`, the `visibility` parameter can contain a numeric value with a group id.
107 - [`GET /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
108 - [`DELETE /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
109 - [`GET /api/v1/statuses/:id/card`](https://docs.joinmastodon.org/methods/statuses/)
110 - [`GET /api/v1/statuses/:id/context`](https://docs.joinmastodon.org/methods/statuses/)
111 - [`GET /api/v1/statuses/:id/reblogged_by`](https://docs.joinmastodon.org/methods/statuses/)
112 - [`GET /api/v1/statuses/:id/favourited_by`](https://docs.joinmastodon.org/methods/statuses/)
113 - [`POST /api/v1/statuses/:id/favourite`](https://docs.joinmastodon.org/methods/statuses/)
114 - [`POST /api/v1/statuses/:id/unfavourite`](https://docs.joinmastodon.org/methods/statuses/)
115 - [`POST /api/v1/statuses/:id/reblog`](https://docs.joinmastodon.org/methods/statuses/)
116 - [`POST /api/v1/statuses/:id/unreblog`](https://docs.joinmastodon.org/methods/statuses/)
117 - [`POST /api/v1/statuses/:id/bookmark`](https://docs.joinmastodon.org/methods/statuses/)
118 - [`POST /api/v1/statuses/:id/unbookmark`](https://docs.joinmastodon.org/methods/statuses/)
119 - [`POST /api/v1/statuses/:id/mute`](https://docs.joinmastodon.org/methods/statuses/)
120 - [`POST /api/v1/statuses/:id/unmute`](https://docs.joinmastodon.org/methods/statuses/)
121 - [`POST /api/v1/statuses/:id/pin`](https://docs.joinmastodon.org/methods/statuses/)
122 - [`POST /api/v1/statuses/:id/unpin`](https://docs.joinmastodon.org/methods/statuses/)
123 - [`GET /api/v1/suggestions`](https://docs.joinmastodon.org/methods/accounts/suggestions/)
124 - [`GET /api/v1/timelines/direct`](https://docs.joinmastodon.org/methods/timelines/)
125 - [`GET /api/v1/timelines/home`](https://docs.joinmastodon.org/methods/timelines/)
126 - [`GET /api/v1/timelines/list/:id`](https://docs.joinmastodon.org/methods/timelines/)
127 - [`GET /api/v1/timelines/public`](https://docs.joinmastodon.org/methods/timelines/)
128 - [`GET /api/v1/timelines/tag/:hashtag`](https://docs.joinmastodon.org/methods/timelines/)
129 - [`GET /api/v1/trends`](https://docs.joinmastodon.org/methods/instance/trends/)
130 - [`GET /api/v2/search`](https://docs.joinmastodon.org/methods/search/)
131
132
133 ## Currently unimplemented endpoints
134
135 These emdpoints are planned to be implemented somewhere in the future.
136
137 - [`PATCH /api/v1/accounts/update_credentials`](https://docs.joinmastodon.org/methods/accounts/)
138 - [`POST /api/v1/accounts/:id/remove_from_followers`](https://github.com/mastodon/mastodon/pull/16864)
139 - [`GET /api/v1/accounts/familiar_followers`](https://github.com/mastodon/mastodon/pull/17700)
140 - [`GET /api/v1/accounts/lookup`](https://github.com/mastodon/mastodon/pull/15740)
141 - [`GET /api/v1/trends/links`](https://github.com/mastodon/mastodon/pull/16917)
142 - [`GET /api/v1/trends/statuses`](https://github.com/mastodon/mastodon/pull/17431)
143 - [`GET /api/v1/trends/tags`](https://github.com/mastodon/mastodon/pull/16917)
144 - [`POST /api/v1/polls/:id/votes`](https://docs.joinmastodon.org/methods/statuses/polls/)
145 - [`GET /api/v1/statuses/{id:\d+}/source`](https://github.com/mastodon/mastodon/pull/16697)
146 - [`GET /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
147 - [`POST /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
148 - [`DELETE /api/v1/featured_tags/:id`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
149
150 ## Dummy endpoints
151
152 These endpoints are returning empty data to avoid error messages when using third party clients.
153 They refer to features that don't exist in Friendica yet.
154
155 - [`GET /api/v1/accounts/:id/identity_proofs`](https://docs.joinmastodon.org/methods/accounts/)
156 - [`GET /api/v1/announcements`](https://docs.joinmastodon.org/methods/announcements/)
157 - [`GET /api/v1/endorsements`](https://docs.joinmastodon.org/methods/accounts/endorsements/)
158 - [`GET /api/v1/filters`](https://docs.joinmastodon.org/methods/accounts/filters/)
159 - [`GET /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
160
161 ## Non supportable endpoints
162
163 These endpoints won't be implemented at the moment.
164 They refer to features or data that don't exist in Friendica yet.
165
166 - `POST /api/meta` Misskey API endpoint.
167 - [`POST /api/v1/accounts`](https://docs.joinmastodon.org/methods/accounts/)
168 - [`GET /api/v1/accounts/:id/featured_tags`](https://docs.joinmastodon.org/methods/accounts/)
169 - [`POST /api/v1/accounts/:id/pin`](https://docs.joinmastodon.org/methods/accounts/)
170 - [`POST /api/v1/accounts/:id/unpin`](https://docs.joinmastodon.org/methods/accounts/)
171 - [`GET /api/v1/admin/accounts`](https://docs.joinmastodon.org/methods/admin/)
172 - [`GET /api/v1/admin/accounts/:id`](https://docs.joinmastodon.org/methods/admin/)
173 - [`POST /api/v1/admin/accounts/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
174 - [`GET /api/v1/admin/reports`](https://docs.joinmastodon.org/methods/admin/)
175 - [`GET /api/v1/admin/reports/:id`](https://docs.joinmastodon.org/methods/admin/)
176 - [`POST /api/v1/admin/reports/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
177 - [`POST /api/v1/announcements/:id/dismiss`](https://docs.joinmastodon.org/methods/announcements/)
178 - [`PUT /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
179 - [`DELETE /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
180 - [`GET /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
181 - [`POST /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
182 - [`DELETE /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
183 - [`DELETE /api/v1/emails/confirmations`](https://github.com/mastodon/mastodon/pull/15816)
184 - [`GET /api/v1/featured_tags/suggestions`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
185 - [`GET /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
186 - [`POST /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
187 - [`PUT /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
188 - [`DELETE /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
189 - [`GET /api/v1/instance/activity`](https://docs.joinmastodon.org/methods/instance#weekly-activity)
190 - [`POST /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
191 - [`POST /api/v1/reports`](https://docs.joinmastodon.org/methods/accounts/reports/)
192 - [`PUT /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
193 - [`GET /api/v1/statuses/{id:\d+}/history`](https://github.com/mastodon/mastodon/pull/16697)
194 - [`GET /api/v1/streaming`](https://docs.joinmastodon.org/methods/timelines/streaming/)
195 - [`DELETE /api/v1/suggestions/:id`](https://docs.joinmastodon.org/methods/accounts/suggestions/)