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