]> git.mxchange.org Git - friendica.git/blobdiff - doc/API-Mastodon.md
Merge pull request #10276 from annando/api-conversations
[friendica.git] / doc / API-Mastodon.md
index d885e6ab3c7e7cd655de593e13a7e0785249e2a0..a734bd544566e051ffc7d4a7e7419227c8eca70c 100644 (file)
@@ -9,16 +9,159 @@ Friendica provides the following endpoints defined in [the official Mastodon API
 
 Authentication is the same as described in [Using the APIs](help/api#Authentication).
 
+## Clients
+
+Supported mobile apps:
+
+- [AndStatus](http://andstatus.org)
+- [Husky](https://husky.fwgs.ru)
+- [Subway Tooter](https://github.com/tateisu/SubwayTooter)
+- [Tusky](https://tusky.app)
+- [Twidere](https://github.com/TwidereProject/)
+- [twitlatte](https://github.com/moko256/twitlatte)
+- [Yuito](https://github.com/accelforce/Yuito)
+
+Unsupported mobile apps:
+
+- [Fedilab](https://framagit.org/tom79/fedilab) Automatically uses the legacy API, see issue: https://framagit.org/tom79/fedilab/-/issues/520
+- [Mammut](https://github.com/jamiesanson/Mammut) There are problems with the token request, see issue https://github.com/jamiesanson/Mammut/issues/19
+
 ## Entities
 
-These endpoints use the [Mastodon API entities](https://docs.joinmastodon.org/api/entities/).
+These endpoints use the [Mastodon API entities](https://docs.joinmastodon.org/entities/).
 
 ## Implemented endpoints
 
-- [GET /api/v1/follow_requests](https://docs.joinmastodon.org/api/rest/follow-requests/#get-api-v1-follow-requests)
+- [`GET /api/v1/accounts/:id`](https://docs.joinmastodon.org/methods/accounts/#retrieve-information)
+- [`POST /api/v1/accounts/:id/block`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/follow`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/accounts/:id/followers`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/accounts/:id/following`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/accounts/:id/lists`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/mute`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/note`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/accounts/:id/statuses`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/unfollow`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/unblock`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/unmute`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/accounts/relationships`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/accounts/search`](https://docs.joinmastodon.org/methods/accounts)
+- [`GET /api/v1/accounts/verify_credentials`](https://docs.joinmastodon.org/methods/accounts)
+- [`POST /api/v1/apps`](https://docs.joinmastodon.org/methods/apps/)
+- [`GET /api/v1/apps/verify_credentials`](https://docs.joinmastodon.org/methods/apps/)
+- [`GET /api/v1/blocks`](https://docs.joinmastodon.org/methods/accounts/blocks/)
+- [`GET /api/v1/bookmarks`](https://docs.joinmastodon.org/methods/accounts/bookmarks/)
+- [`GET /api/v1/conversations`](https://docs.joinmastodon.org/methods/timelines/conversations/)
+- [`DELETE /api/v1/conversations/:id`](https://docs.joinmastodon.org/methods/timelines/conversations/)
+- [`POST /api/v1/conversations/:id/read`](https://docs.joinmastodon.org/methods/timelines/conversations/)
+- [`GET /api/v1/custom_emojis`](https://docs.joinmastodon.org/methods/instance/custom_emojis/)
+    - Doesn't return unicode emojis since they aren't using an image URL
+
+
+- [`GET /api/v1/directory`](https://docs.joinmastodon.org/methods/instance/directory/)
+- [`GET /api/v1/favourites`](https://docs.joinmastodon.org/methods/accounts/favourites/)
+- [`GET /api/v1/follow_requests`](https://docs.joinmastodon.org/methods/accounts/follow_requests#pending-follows)
+    - Returned IDs are specific to follow requests
+- [`POST /api/v1/follow_requests/:id/authorize`](https://docs.joinmastodon.org/methods/accounts/follow_requests#accept-follow)
+    - `:id` is a follow request ID, not a regular account id
+- [`POST /api/v1/follow_requests/:id/reject`](https://docs.joinmastodon.org/methods/accounts/follow_requests#reject-follow)
+    - `:id` is a follow request ID, not a regular account id
+- `POST /api/v1/follow_requests/:id/ignore`
+    - Friendica-specific, hides the follow request from the list and prevents the remote contact from retrying.
+    - `:id` is a follow request ID, not a regular account id
+    - Returns a [Relationship](https://docs.joinmastodon.org/entities/relationship) object.
+
+
+- [`GET /api/v1/instance`](https://docs.joinmastodon.org/methods/instance#fetch-instance)
+- [`GET /api/v1/instance/peers`](https://docs.joinmastodon.org/methods/instance#list-of-connected-domains)
+- [`GET /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`POST /api/v1/lists`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`GET /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`PUT /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`DELETE /api/v1/lists/:id`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`GET /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`POST /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`DELETE /api/v1/lists/:id/accounts`](https://docs.joinmastodon.org/methods/timelines/lists/)
+- [`POST /api/v1/media`](https://docs.joinmastodon.org/methods/statuses/media/)
+- [`GET /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
+- [`PUT /api/v1/media/:id`](https://docs.joinmastodon.org/methods/statuses/media/)
+- [`GET /api/v1/mutes`](https://docs.joinmastodon.org/methods/accounts/mutes/)
+- [`GET /api/v1/notifications`](https://docs.joinmastodon.org/methods/notifications/)
+- [`GET /api/v1/notifications/:id`](https://docs.joinmastodon.org/methods/notifications/)
+- [`POST /api/v1/notifications/clear`](https://docs.joinmastodon.org/methods/notifications/)
+- [`POST /api/v1/notifications/:id/dismiss`](https://docs.joinmastodon.org/methods/notifications/)
+- [`GET /api/v1/preferences`](https://docs.joinmastodon.org/methods/accounts/preferences/)
+- [`POST /api/v1/statuses`](https://docs.joinmastodon.org/methods/statuses/)
+- [`GET /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
+- [`DELETE /api/v1/statuses/:id`](https://docs.joinmastodon.org/methods/statuses/)
+- [`GET /api/v1/statuses/:id/context`](https://docs.joinmastodon.org/methods/statuses/)
+- [`GET /api/v1/statuses/:id/reblogged_by`](https://docs.joinmastodon.org/methods/statuses/)
+- [`GET /api/v1/statuses/:id/favourited_by`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/favourite`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/unfavourite`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/reblog`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/unreblog`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/bookmark`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/unbookmark`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/mute`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/unmute`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/pin`](https://docs.joinmastodon.org/methods/statuses/)
+- [`POST /api/v1/statuses/:id/unpin`](https://docs.joinmastodon.org/methods/statuses/)
+- [`GET /api/v1/suggestions`](https://docs.joinmastodon.org/methods/accounts/suggestions/)
+- [`GET /api/v1/timelines/direct`](https://docs.joinmastodon.org/methods/timelines/)
+- [`GET /api/v1/timelines/home`](https://docs.joinmastodon.org/methods/timelines/)
+- [`GET /api/v1/timelines/list/:id`](https://docs.joinmastodon.org/methods/timelines/)
+- [`GET /api/v1/timelines/public`](https://docs.joinmastodon.org/methods/timelines/)
+- [`GET /api/v1/timelines/tag/:hashtag`](https://docs.joinmastodon.org/methods/timelines/)
+- [`GET /api/v1/trends`](https://docs.joinmastodon.org/methods/instance/trends/)
+- [`GET /api/v2/search`](https://docs.joinmastodon.org/methods/search/)
+
+
+## Currently unimplemented endpoints
+
+These emdpoints are planned to be implemented
+
+- [`PATCH /api/v1/accounts/update_credentials`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/instance/activity`](https://docs.joinmastodon.org/methods/instance#weekly-activity)
 
-## Non-implemented endpoints
+## Non supportable endpoints
 
-- [POST /api/v1/follow_requests/:id/authorize](https://docs.joinmastodon.org/api/rest/follow-requests/#post-api-v1-follow-requests-id-authorize)
-- [POST /api/v1/follow_requests/:id/reject](https://docs.joinmastodon.org/api/rest/follow-requests/#post-api-v1-follow-requests-id-reject)
+These endpoints won't be implemented, since they refer to functionality that doesn't exist in Friendica
 
+- [`POST /api/v1/accounts`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/accounts/:id/identity_proofs`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/pin`](https://docs.joinmastodon.org/methods/accounts/)
+- [`POST /api/v1/accounts/:id/unpin`](https://docs.joinmastodon.org/methods/accounts/)
+- [`GET /api/v1/admin/accounts`](https://docs.joinmastodon.org/methods/admin/)
+- [`GET /api/v1/admin/accounts/:id`](https://docs.joinmastodon.org/methods/admin/)
+- [`POST /api/v1/admin/accounts/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
+- [`GET /api/v1/admin/reports`](https://docs.joinmastodon.org/methods/admin/)
+- [`GET /api/v1/admin/reports/:id`](https://docs.joinmastodon.org/methods/admin/)
+- [`POST /api/v1/admin/reports/:id/{action}`](https://docs.joinmastodon.org/methods/admin/)
+- [`GET /api/v1/announcements`](https://docs.joinmastodon.org/methods/announcements/)
+- [`POST /api/v1/announcements/:id/dismiss`](https://docs.joinmastodon.org/methods/announcements/)
+- [`PUT /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
+- [`DELETE /api/v1/announcements/:id/reactions/{name}`](https://docs.joinmastodon.org/methods/announcements/)
+- [`GET /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
+- [`POST /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
+- [`DELETE /api/v1/domain_blocks`](https://docs.joinmastodon.org/methods/accounts/domain_blocks/)
+- [`GET /api/v1/endorsements`](https://docs.joinmastodon.org/methods/accounts/endorsements/)
+- [`GET /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
+- [`POST /api/v1/featured_tags`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
+- [`DELETE /api/v1/featured_tags/:id`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
+- [`GET /api/v1/featured_tags/suggestions`](https://docs.joinmastodon.org/methods/accounts/featured_tags/)
+- [`GET /api/v1/filters`](https://docs.joinmastodon.org/methods/accounts/filters/)
+- [`GET /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
+- [`POST /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
+- [`PUT /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
+- [`DELETE /api/v1/filters/:id`](https://docs.joinmastodon.org/methods/accounts/filters/)
+- [`GET /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
+- [`POST /api/v1/markers`](https://docs.joinmastodon.org/methods/timelines/markers/)
+- [`GET /api/v1/polls/:id`](https://docs.joinmastodon.org/methods/statuses/polls/)
+- [`POST /api/v1/polls/:id/votes`](https://docs.joinmastodon.org/methods/statuses/polls/)
+- [`POST /api/v1/reports`](https://docs.joinmastodon.org/methods/accounts/reports/)
+- [`GET /api/v1/scheduled_statuses`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
+- [`GET /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
+- [`PUT /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
+- [`DELETE /api/v1/scheduled_statuses/:id`](https://docs.joinmastodon.org/methods/statuses/scheduled_statuses/)
+- [`DELETE /api/v1/suggestions/:id`](https://docs.joinmastodon.org/methods/accounts/suggestions/)