]> git.mxchange.org Git - friendica.git/blob - doc/API-Mastodon.md
85e23f525c2101cceda2f40cce904ed74b3f3c2b
[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/)