4 * [Using the APIs](help/api)
8 Friendica provides the following endpoints defined in [the official Mastodon API reference](https://docs.joinmastodon.org/api/).
10 Authentication is the same as described in [Using the APIs](help/api#Authentication).
16 For supported apps please have a look at the [FAQ](help/FAQ#clients)
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
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)
32 These endpoints use the [Mastodon API entities](https://docs.joinmastodon.org/entities/). With some additional extensions listed below.
35 Extensions to the [Mastodon Status Entities](https://docs.joinmastodon.org/entities/Status/)
36 * `in_reply_to_status`: A fully populated Mastodon Status entity for the replied to status or null it is a post rather than a response
37 * `friendica`: Friendica specific properties of a status including:
38 * `title`: The Friendica title for a post, or empty if the status is a comment
39 * `dislikes_count`: The number of dislikes that a status has accumulated according to the server.
45 "created_at": "2023-02-23T02:45:46.000Z",
46 "in_reply_to_id": "356",
47 "in_reply_to_status": {
49 "created_at": "2023-02-23T02:45:35.000Z",
50 "in_reply_to_id": null,
51 "in_reply_to_status": null,
52 "in_reply_to_account_id": null,
54 "content": "A post from testuser1",
58 "username": "testuser1",
60 "display_name": "testuser1",
69 "in_reply_to_account_id": "6",
73 "favourites_count": 0,
75 "content": "A reply from testuser2",
79 "username": "testuser2",
81 "display_name": "testuser2",
92 ## Implemented endpoints
94 - [`GET /api/v1/accounts/:id`](https://docs.joinmastodon.org/methods/accounts/#retrieve-information)
95 - [`POST /api/v1/accounts/:id/block`](https://docs.joinmastodon.org/methods/accounts/)
96 - [`POST /api/v1/accounts/:id/follow`](https://docs.joinmastodon.org/methods/accounts/)
97 - [`GET /api/v1/accounts/:id/followers`](https://docs.joinmastodon.org/methods/accounts/)
98 - [`GET /api/v1/accounts/:id/following`](https://docs.joinmastodon.org/methods/accounts/)
99 - [`GET /api/v1/accounts/:id/lists`](https://docs.joinmastodon.org/methods/accounts/)
100 - [`POST /api/v1/accounts/:id/mute`](https://docs.joinmastodon.org/methods/accounts/)
101 - [`POST /api/v1/accounts/:id/note`](https://docs.joinmastodon.org/methods/accounts/)
102 - [`GET /api/v1/accounts/:id/statuses`](https://docs.joinmastodon.org/methods/accounts/)
103 - [`POST /api/v1/accounts/:id/unfollow`](https://docs.joinmastodon.org/methods/accounts/)
104 - [`POST /api/v1/accounts/:id/unblock`](https://docs.joinmastodon.org/methods/accounts/)
105 - [`POST /api/v1/accounts/:id/unmute`](https://docs.joinmastodon.org/methods/accounts/)
106 - [`GET /api/v1/accounts/relationships`](https://docs.joinmastodon.org/methods/accounts/)
107 - [`GET /api/v1/accounts/search`](https://docs.joinmastodon.org/methods/accounts)
108 - [`PATCH /api/v1/accounts/update_credentials`](https://docs.joinmastodon.org/methods/accounts/#update_credentials)
109 - [`GET /api/v1/accounts/verify_credentials`](https://docs.joinmastodon.org/methods/accounts)
110 - [`POST /api/v1/apps`](https://docs.joinmastodon.org/methods/apps/)
111 - [`GET /api/v1/apps/verify_credentials`](https://docs.joinmastodon.org/methods/apps/)
112 - [`GET /api/v1/blocks`](https://docs.joinmastodon.org/methods/accounts/blocks/)
113 - [`GET /api/v1/bookmarks`](https://docs.joinmastodon.org/methods/accounts/bookmarks/)
114 - [`GET /api/v1/conversations`](https://docs.joinmastodon.org/methods/timelines/conversations/)
115 - [`DELETE /api/v1/conversations/:id`](https://docs.joinmastodon.org/methods/timelines/conversations/)
116 - [`POST /api/v1/conversations/:id/read`](https://docs.joinmastodon.org/methods/timelines/conversations/)
117 - [`GET /api/v1/custom_emojis`](https://docs.joinmastodon.org/methods/instance/custom_emojis/)
118 - Doesn't return unicode emojis since they aren't using an image URL
121 - [`GET /api/v1/directory`](https://docs.joinmastodon.org/methods/instance/directory/)
122 - [`GET /api/v1/favourites`](https://docs.joinmastodon.org/methods/accounts/favourites/)
123 - [`GET /api/v1/follow_requests`](https://docs.joinmastodon.org/methods/accounts/follow_requests#pending-follows)
124 - Returned IDs are specific to follow requests
125 - [`POST /api/v1/follow_requests/:id/authorize`](https://docs.joinmastodon.org/methods/accounts/follow_requests#accept-follow)
126 - `:id` is a follow request ID, not a regular account id
127 - [`POST /api/v1/follow_requests/:id/reject`](https://docs.joinmastodon.org/methods/accounts/follow_requests#reject-follow)
128 - `:id` is a follow request ID, not a regular account id
129 - `POST /api/v1/follow_requests/:id/ignore`
130 - Friendica-specific, hides the follow request from the list and prevents the remote contact from retrying.
131 - `:id` is a follow request ID, not a regular account id
132 - Returns a [Relationship](https://docs.joinmastodon.org/entities/relationship) object.
134 - [`GET /api/v1/followed_tags`](https://docs.joinmastodon.org/methods/followed_tags/)
135 - [`GET /api/v1/instance`](https://docs.joinmastodon.org/methods/instance/#v1)
136 - `GET /api/v1/instance/rules` Undocumented, returns Terms of Service
137 - [`GET /api/v1/instance/peers`](https://docs.joinmastodon.org/methods/instance#list-of-connected-domains)
138 - [`GET /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
139 - [`POST /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
140 - [`GET /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
141 - [`PUT /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
142 - [`DELETE /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
143 - [`GET /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
144 - [`POST /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
145 - [`DELETE /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
146 - [`POST /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
147 - [`GET /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
148 - [`POST /api/v1/media`](https://docs.joinmastodon.org/methods/statuses/media/)
149 - [`GET /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
150 - [`PUT /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
151 - [`GET /api/v1/mutes`](https://docs.joinmastodon.org/methods/accounts/mutes/)
152 - [`GET /api/v1/notifications`](https://docs.joinmastodon.org/methods/notifications/)
153 - Additional field `include_all` to return read and unread statuses, defaults to `false`
154 - Additional field `summary` returns a count of all of the statuses that match the type filter
155 - Additional field `with_muted` Pleroma extension to return notifications from muted users, defaults to `false`
156 - Does not support the `type` field, which is the mirror image of the supported `exclude_types` field
157 - [`GET /api/v1/notifications/:id`](https://docs.joinmastodon.org/methods/notifications/)
158 - [`POST /api/v1/notifications/clear`](https://docs.joinmastodon.org/methods/notifications/)
159 - [`POST /api/v1/notifications/:id/dismiss`](https://docs.joinmastodon.org/methods/notifications/)
160 - [`GET /api/v1/polls/:id`](https://docs.joinmastodon.org/methods/statuses/polls/)
161 - [`GET /api/v1/preferences`](https://docs.joinmastodon.org/methods/accounts/preferences/)
162 - [`DELETE /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
163 - [`GET /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
164 - [`PUSH /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
165 - [`PUT /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
166 - [`POST /api/v1/reports`](https://docs.joinmastodon.org/methods/accounts/reports/)
167 - [`GET /api/v1/scheduled_statuses`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
168 - [`DELETE /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
169 - [`GET /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
170 - [`GET /api/v1/search`](https://docs.joinmastodon.org/methods/search/)
171 - [`POST /api/v1/statuses`](https://docs.joinmastodon.org/methods/statuses/#create)
172 - Additionally to the static values `public`, `unlisted` and `private`, the `visibility` parameter can contain a numeric value with a group id.
173 - Additional field `quote_id` for the post that is being quote reshared
174 - Additional fields `friendica` for Friendica specific parameters:
175 - `title`: Explicitly sets the title for a post status, ignored if used on a comment status. For post statuses the legacy behavior is to use any "spoiler text" as the title if it is provided. If both the title and spoiler text are provided for a post status then they will each be used for their respective roles. If no title is provided then the legacy behavior will persist. If you want to create a post with no title but spoiler text then explicitly set the title but set it to an empty string `""`.
176 - [`GET /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/#get)
177 - [`DELETE /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/#delete)
178 - [`GET /api/v1/statuses/:id/context`](https://docs.joinmastodon.org/methods/statuses/#context)
179 - Additional support for paging using `min_id`, `max_id`, `since_id` parameters
180 - Additional support for previous/next Link Headers to support paging
181 - Additional flag `show_all` to allow including posts from blocked and ignored/muted users, defaults to `false`
182 - [`GET /api/v1/statuses/:id/reblogged_by`](https://docs.joinmastodon.org/methods/statuses/#reblogged_by)
183 - [`GET /api/v1/statuses/:id/favourited_by`](https://docs.joinmastodon.org/methods/statuses/#favourited_by)
184 - [`POST /api/v1/statuses/:id/favourite`](https://docs.joinmastodon.org/methods/statuses/#favourite)
185 - [`POST /api/v1/statuses/:id/unfavourite`](https://docs.joinmastodon.org/methods/statuses/#unfavourite)
186 - [`POST /api/v1/statuses/:id/reblog`](https://docs.joinmastodon.org/methods/statuses/#boost)
187 - [`POST /api/v1/statuses/:id/unreblog`](https://docs.joinmastodon.org/methods/statuses/#unreblog)
188 - [`POST /api/v1/statuses/:id/bookmark`](https://docs.joinmastodon.org/methods/statuses/#bookmark)
189 - [`POST /api/v1/statuses/:id/unbookmark`](https://docs.joinmastodon.org/methods/statuses/#unbookmark)
190 - [`POST /api/v1/statuses/:id/mute`](https://docs.joinmastodon.org/methods/statuses/#mute)
191 - [`POST /api/v1/statuses/:id/unmute`](https://docs.joinmastodon.org/methods/statuses/#unmute)
192 - [`POST /api/v1/statuses/:id/pin`](https://docs.joinmastodon.org/methods/statuses/#pin)
193 - [`POST /api/v1/statuses/:id/unpin`](https://docs.joinmastodon.org/methods/statuses/#unpin)
194 - [`POST /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/#edit)
195 - [`GET /api/v1/statuses/:id/source`](https://docs.joinmastodon.org/methods/statuses/#source)
196 - [`GET /api/v1/statuses/:id/card`](https://docs.joinmastodon.org/methods/statuses/#card)
197 - [`GET /api/v1/suggestions`](https://docs.joinmastodon.org/methods/accounts/suggestions/)
198 - [`GET /api/v1/tags/:id`](https://docs.joinmastodon.org/methods/tags/#get)
199 - [`GET /api/v1/tags/:id/follow`](https://docs.joinmastodon.org/methods/tags/#follow)
200 - [`GET /api/v1/tags/:id/unfollow`](https://docs.joinmastodon.org/methods/tags/#unfollow)
201 - [`GET /api/v1/timelines/direct`](https://docs.joinmastodon.org/methods/timelines/)
202 - [`GET /api/v1/timelines/home`](https://docs.joinmastodon.org/methods/timelines/)
203 - [`GET /api/v1/timelines/list/:id`](https://docs.joinmastodon.org/methods/timelines/)
204 - [`GET /api/v1/timelines/public`](https://docs.joinmastodon.org/methods/timelines/)
205 - [`GET /api/v1/timelines/tag/:hashtag`](https://docs.joinmastodon.org/methods/timelines/)
206 - [`GET /api/v1/trends`](https://docs.joinmastodon.org/methods/instance/trends/)
207 - [`GET /api/v1/trends/links`](https://github.com/mastodon/mastodon/pull/16917)
208 - [`GET /api/v1/trends/statuses`](https://docs.joinmastodon.org/methods/trends/#statuses)
209 - [`GET /api/v1/trends/tags`](https://docs.joinmastodon.org/methods/trends/#tags)
210 - Additional field `friendica_local` to return local trending tags instead of global tags, defaults to `false`
211 - [`GET /api/v2/instance`](https://docs.joinmastodon.org/methods/instance/#v2)
212 - [`GET /api/v2/search`](https://docs.joinmastodon.org/methods/search/)
215 ## Currently unimplemented endpoints
217 These emdpoints are planned to be implemented somewhere in the future.
219 - [`POST /api/v1/accounts/:id/remove_from_followers`](https://github.com/mastodon/mastodon/pull/16864)
220 - [`GET /api/v1/accounts/familiar_followers`](https://github.com/mastodon/mastodon/pull/17700)
221 - [`GET /api/v1/accounts/lookup`](https://github.com/mastodon/mastodon/pull/15740)
222 - [`POST /api/v1/polls/:id/votes`](https://docs.joinmastodon.org/methods/statuses/polls/)
223 - [`GET /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
224 - [`POST /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
225 - [`DELETE /api/v1/featured_tags/:id`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
229 These endpoints are returning empty data to avoid error messages when using third party clients.
230 They refer to features that don't exist in Friendica yet.
232 - [`GET /api/v1/accounts/:id/identity_proofs`](https://docs.joinmastodon.org/methods/accounts/)
233 - [`GET /api/v1/announcements`](https://docs.joinmastodon.org/methods/announcements/)
234 - [`GET /api/v1/endorsements`](https://docs.joinmastodon.org/methods/accounts/endorsements/)
235 - [`GET /api/v1/filters`](https://docs.joinmastodon.org/methods/accounts/filters/)
237 ## Non supportable endpoints
239 These endpoints won't be implemented at the moment.
240 They refer to features or data that don't exist in Friendica yet.
242 - `POST /api/meta` Misskey API endpoint.
243 - [`POST /api/v1/accounts`](https://docs.joinmastodon.org/methods/accounts/)
244 - [`GET /api/v1/accounts/:id/featured_tags`](https://docs.joinmastodon.org/methods/accounts/)
245 - [`POST /api/v1/accounts/:id/pin`](https://docs.joinmastodon.org/methods/accounts/)
246 - [`POST /api/v1/accounts/:id/unpin`](https://docs.joinmastodon.org/methods/accounts/)
247 - [`GET /api/v1/admin/accounts`](https://docs.joinmastodon.org/methods/admin/)
248 - [`GET /api/v1/admin/accounts/:id`](https://docs.joinmastodon.org/methods/admin/)
249 - [`POST /api/v1/admin/accounts/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
250 - [`GET /api/v1/admin/reports`](https://docs.joinmastodon.org/methods/admin/)
251 - [`GET /api/v1/admin/reports/:id`](https://docs.joinmastodon.org/methods/admin/)
252 - [`POST /api/v1/admin/reports/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
253 - [`POST /api/v1/announcements/:id/dismiss`](https://docs.joinmastodon.org/methods/announcements/)
254 - [`PUT /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
255 - [`DELETE /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
256 - [`GET /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
257 - [`POST /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
258 - [`DELETE /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
259 - [`DELETE /api/v1/emails/confirmations`](https://github.com/mastodon/mastodon/pull/15816)
260 - [`GET /api/v1/featured_tags/suggestions`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
261 - [`GET /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
262 - [`POST /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
263 - [`PUT /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
264 - [`DELETE /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
265 - [`GET /api/v1/instance/activity`](https://docs.joinmastodon.org/methods/instance#weekly-activity)
266 - [`POST /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
267 - [`PUT /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
268 - [`GET /api/v1/statuses/{id:\d+}/history`](https://github.com/mastodon/mastodon/pull/16697)
269 - [`GET /api/v1/streaming`](https://docs.joinmastodon.org/methods/timelines/streaming/)
270 - [`DELETE /api/v1/suggestions/:id`](https://docs.joinmastodon.org/methods/accounts/suggestions/)