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