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