]> git.mxchange.org Git - friendica.git/blob - doc/API-Mastodon.md
Amaroq is said to be working as well
[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 mobile apps:
15
16 - [AndStatus](http://andstatus.org)
17 - [Husky](https://husky.fwgs.ru)
18 - [Subway Tooter](https://github.com/tateisu/SubwayTooter)
19 - [Tusky](https://tusky.app)
20 - [Twidere](https://github.com/TwidereProject/)
21 - [twitlatte](https://github.com/moko256/twitlatte)
22 - [Yuito](https://github.com/accelforce/Yuito)
23 - [Amaroq](https://github.com/ReticentJohn/Amaroq/tree/master)
24
25 Unsupported mobile apps:
26
27 - [Fedilab](https://framagit.org/tom79/fedilab) Automatically uses the legacy API, see issue: https://framagit.org/tom79/fedilab/-/issues/520
28 - [Mammut](https://github.com/jamiesanson/Mammut) There are problems with the token request, see issue https://github.com/jamiesanson/Mammut/issues/19
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/preferences`](https://docs.joinmastodon.org/methods/accounts/preferences/)
96 - [`POST /api/v1/statuses`](https://docs.joinmastodon.org/methods/statuses/)
97 - [`GET /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
98 - [`DELETE /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
99 - [`GET /api/v1/statuses/:id/context`](https://docs.joinmastodon.org/methods/statuses/)
100 - [`GET /api/v1/statuses/:id/reblogged_by`](https://docs.joinmastodon.org/methods/statuses/)
101 - [`GET /api/v1/statuses/:id/favourited_by`](https://docs.joinmastodon.org/methods/statuses/)
102 - [`POST /api/v1/statuses/:id/favourite`](https://docs.joinmastodon.org/methods/statuses/)
103 - [`POST /api/v1/statuses/:id/unfavourite`](https://docs.joinmastodon.org/methods/statuses/)
104 - [`POST /api/v1/statuses/:id/reblog`](https://docs.joinmastodon.org/methods/statuses/)
105 - [`POST /api/v1/statuses/:id/unreblog`](https://docs.joinmastodon.org/methods/statuses/)
106 - [`POST /api/v1/statuses/:id/bookmark`](https://docs.joinmastodon.org/methods/statuses/)
107 - [`POST /api/v1/statuses/:id/unbookmark`](https://docs.joinmastodon.org/methods/statuses/)
108 - [`POST /api/v1/statuses/:id/mute`](https://docs.joinmastodon.org/methods/statuses/)
109 - [`POST /api/v1/statuses/:id/unmute`](https://docs.joinmastodon.org/methods/statuses/)
110 - [`POST /api/v1/statuses/:id/pin`](https://docs.joinmastodon.org/methods/statuses/)
111 - [`POST /api/v1/statuses/:id/unpin`](https://docs.joinmastodon.org/methods/statuses/)
112 - [`GET /api/v1/suggestions`](https://docs.joinmastodon.org/methods/accounts/suggestions/)
113 - [`GET /api/v1/timelines/direct`](https://docs.joinmastodon.org/methods/timelines/)
114 - [`GET /api/v1/timelines/home`](https://docs.joinmastodon.org/methods/timelines/)
115 - [`GET /api/v1/timelines/list/:id`](https://docs.joinmastodon.org/methods/timelines/)
116 - [`GET /api/v1/timelines/public`](https://docs.joinmastodon.org/methods/timelines/)
117 - [`GET /api/v1/timelines/tag/:hashtag`](https://docs.joinmastodon.org/methods/timelines/)
118 - [`GET /api/v1/trends`](https://docs.joinmastodon.org/methods/instance/trends/)
119 - [`GET /api/v2/search`](https://docs.joinmastodon.org/methods/search/)
120
121
122 ## Currently unimplemented endpoints
123
124 These emdpoints are planned to be implemented somewhere in the future.
125
126 - [`PATCH /api/v1/accounts/update_credentials`](https://docs.joinmastodon.org/methods/accounts/)
127
128 ## Dummy endpoints
129
130 These endpoints are returning empty data to avoid error messages when using third party clients.
131 They refer to features that don't exist in Friendica yet.
132
133 - [`GET /api/v1/accounts/:id/identity_proofs`](https://docs.joinmastodon.org/methods/accounts/)
134 - [`GET /api/v1/announcements`](https://docs.joinmastodon.org/methods/announcements/)
135 - [`GET /api/v1/endorsements`](https://docs.joinmastodon.org/methods/accounts/endorsements/)
136 - [`GET /api/v1/filters`](https://docs.joinmastodon.org/methods/accounts/filters/)
137 - [`GET /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
138 - [`GET /api/v1/scheduled_statuses`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
139
140 ## Non supportable endpoints
141
142 These endpoints won't be implemented at the moment.
143 They refer to features or data that don't exist in Friendica yet.
144
145 - POST /api/meta Misskey API endpoint.
146 - [`POST /api/v1/accounts`](https://docs.joinmastodon.org/methods/accounts/)
147 - [`GET /api/v1/accounts/:id/featured_tags`](https://docs.joinmastodon.org/methods/accounts/)
148 - [`POST /api/v1/accounts/:id/pin`](https://docs.joinmastodon.org/methods/accounts/)
149 - [`POST /api/v1/accounts/:id/unpin`](https://docs.joinmastodon.org/methods/accounts/)
150 - [`GET /api/v1/admin/accounts`](https://docs.joinmastodon.org/methods/admin/)
151 - [`GET /api/v1/admin/accounts/:id`](https://docs.joinmastodon.org/methods/admin/)
152 - [`POST /api/v1/admin/accounts/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
153 - [`GET /api/v1/admin/reports`](https://docs.joinmastodon.org/methods/admin/)
154 - [`GET /api/v1/admin/reports/:id`](https://docs.joinmastodon.org/methods/admin/)
155 - [`POST /api/v1/admin/reports/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
156 - [`POST /api/v1/announcements/:id/dismiss`](https://docs.joinmastodon.org/methods/announcements/)
157 - [`PUT /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
158 - [`DELETE /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
159 - [`GET /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
160 - [`POST /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
161 - [`DELETE /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
162 - [`GET /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
163 - [`POST /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
164 - [`DELETE /api/v1/featured_tags/:id`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
165 - [`GET /api/v1/featured_tags/suggestions`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
166 - [`GET /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
167 - [`POST /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
168 - [`PUT /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
169 - [`DELETE /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
170 - [`GET /api/v1/instance/activity`](https://docs.joinmastodon.org/methods/instance#weekly-activity)
171 - [`POST /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
172 - [`GET /api/v1/polls/:id`](https://docs.joinmastodon.org/methods/statuses/polls/)
173 - [`POST /api/v1/polls/:id/votes`](https://docs.joinmastodon.org/methods/statuses/polls/)
174 - [`DELETE /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
175 - [`GET /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
176 - [`PUSH /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
177 - [`PUT /api/v1/push/subscription`](https://docs.joinmastodon.org/methods/notifications/push/)
178 - [`POST /api/v1/reports`](https://docs.joinmastodon.org/methods/accounts/reports/)
179 - [`GET /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
180 - [`PUT /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
181 - [`DELETE /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
182 - [`GET /api/v1/streaming`](https://docs.joinmastodon.org/methods/timelines/streaming/)
183 - [`DELETE /api/v1/suggestions/:id`](https://docs.joinmastodon.org/methods/accounts/suggestions/)