Friendica provides the following endpoints defined in the official Mastodon API reference.
Authentication is the same as described in Using the APIs.
Please find a list of supported apps at FAQ.
These endpoints use the Mastodon API entities. With some additional extensions listed below.
Extensions to the Mastodon Instance::V2 Entities
* friendica: Friendica specific properties of the V2 Instance including:
* version: The Friendica version string
* codename: The Friendica version code name
* db_version: The database schema version number
Example:
{
"domain": "friendicadevtest1.myportal.social",
"title": "Friendica Social Network",
"version": "2.8.0 (compatible; Friendica 2023.03-dev)",
...
"friendica": {
"version": "2023.03-dev",
"codename": "Giant Rhubarb",
"db_version": 1516
}
}
Extensions to the Mastodon Notification Entities
* dismissed: whether the object has been dismissed or not
Extensions to the Mastodon Status Entities
* in_reply_to_status: A fully populated Mastodon Status entity for the replied to status or null it is a post rather than a response
* friendica: Friendica specific properties of a status including:
* title: The Friendica title for a post, or empty if the status is a comment
* delivery_data: Information about the state of federating a message from the server
* delivery_queue_count: Total number of remote servers that the status needs to be federated to.
* delivery_queue_done: Total number of remote servers that have successfully been federated to so far.
* delivery_queue_failed: Total number of remote servers that have we failed to federate to so far.
* dislikes_count: The number of dislikes that a status has accumulated according to the server.
* disliked: Whether the API user disliked the status.
Example:
{
"id": "358",
"created_at": "2023-02-23T02:45:46.000Z",
"in_reply_to_id": "356",
"in_reply_to_status": {
"id": "356",
"created_at": "2023-02-23T02:45:35.000Z",
"in_reply_to_id": null,
"in_reply_to_status": null,
"in_reply_to_account_id": null,
...
"content": "A post from testuser1",
...
"account": {
"id": "6",
"username": "testuser1",
"acct": "testuser1",
"display_name": "testuser1",
...
},
...
"friendica": {
"title": "",
"dislikes_count": 0
}
},
"in_reply_to_account_id": "6",
...
"replies_count": 0,
"reblogs_count": 0,
"favourites_count": 0,
...
"content": "A reply from testuser2",
...
"account": {
"id": "8",
"username": "testuser2",
"acct": "testuser2",
"display_name": "testuser2",
...
},
...
"friendica": {
"title": "",
"delivery_data": {
"delivery_queue_count": 10,
"delivery_queue_done": 3,
"delivery_queue_failed": 0
},
"dislikes_count": 0
}
}
GET /api/v1/accounts/:idPOST /api/v1/accounts/:id/blockPOST /api/v1/accounts/:id/followGET /api/v1/accounts/:id/followersGET /api/v1/accounts/:id/followingGET /api/v1/accounts/:id/listsPOST /api/v1/accounts/:id/mutePOST /api/v1/accounts/:id/noteGET /api/v1/accounts/:id/statusesPOST /api/v1/accounts/:id/unfollowPOST /api/v1/accounts/:id/unblockPOST /api/v1/accounts/:id/unmuteGET /api/v1/accounts/relationshipsGET /api/v1/accounts/searchPATCH /api/v1/accounts/update_credentialsGET /api/v1/accounts/verify_credentialsPOST /api/v1/appsGET /api/v1/apps/verify_credentialsGET /api/v1/blocksGET /api/v1/bookmarksGET /api/v1/conversationsDELETE /api/v1/conversations/:idPOST /api/v1/conversations/:id/readGET /api/v1/favouritesGET /api/v1/follow_requests
POST /api/v1/follow_requests/:id/authorize
:id is a follow request ID, not a regular account idPOST /api/v1/follow_requests/:id/reject
:id is a follow request ID, not a regular account idPOST /api/v1/follow_requests/:id/ignore
:id is a follow request ID, not a regular account idGET /api/v1/instanceGET /api/v1/instance/extended_descriptionGET /api/v1/instance/rulesGET /api/v1/instance/peersGET /api/v1/listsPOST /api/v1/listsGET /api/v1/lists/:idPUT /api/v1/lists/:idDELETE /api/v1/lists/:idGET /api/v1/lists/:id/accountsPOST /api/v1/lists/:id/accountsDELETE /api/v1/lists/:id/accountsPOST /api/v1/markersGET /api/v1/markersPOST /api/v1/mediaGET /api/v1/media/:idPUT /api/v1/media/:idGET /api/v1/mutesGET /api/v1/notifications
include_all to return read and unread statuses, defaults to falsesummary returns a count of all of the statuses that match the type filterwith_muted Pleroma extension to return notifications from muted users, defaults to falsetype field, which is the mirror image of the supported exclude_types fieldGET /api/v1/notifications/:idPOST /api/v1/notifications/clearPOST /api/v1/notifications/:id/dismissGET /api/v1/polls/:idGET /api/v1/preferencesDELETE /api/v1/push/subscriptionGET /api/v1/push/subscriptionPUSH /api/v1/push/subscriptionPUT /api/v1/push/subscriptionPOST /api/v1/reportsGET /api/v1/scheduled_statusesDELETE /api/v1/scheduled_statuses/:idGET /api/v1/scheduled_statuses/:idGET /api/v1/searchPUT /api/v1/statuses
polls argument as Friendica does not have pollsfriendica for Friendica specific parameters:
title: Explicitly sets the title for a post status, ignored if used on a comment status. For post statuses the legacy behavior is to use any "spoiler text" as the title if it is provided. If both the title and spoiler text are provided for a post status then they will each be used for their respective roles. If no title is provided then the legacy behavior will persist. If you want to create a post with no title but spoiler text then explicitly set the title but set it to an empty string "".POST /api/v1/statuses
polls argument as Friendica does not have pollspublic, unlisted and private, the visibility parameter can contain a numeric value with a circle id.quote_id for the post that is being quote resharedfriendica for Friendica specific parameters:
title: Explicitly sets the title for a post status, ignored if used on a comment status. For post statuses the legacy behavior is to use any "spoiler text" as the title if it is provided. If both the title and spoiler text are provided for a post status then they will each be used for their respective roles. If no title is provided then the legacy behavior will persist. If you want to create a post with no title but spoiler text then explicitly set the title but set it to an empty string "".GET /api/v1/statuses/:idDELETE /api/v1/statuses/:idGET /api/v1/statuses/:id/context
min_id, max_id, since_id parametersshow_all to allow including posts from blocked and ignored/muted users, defaults to falseGET /api/v1/statuses/:id/reblogged_byGET /api/v1/statuses/:id/favourited_byPOST /api/v1/statuses/:id/favouritePOST /api/v1/statuses/:id/unfavouritePOST /api/v1/statuses/:id/reblogPOST /api/v1/statuses/:id/unreblogPOST /api/v1/statuses/:id/bookmarkPOST /api/v1/statuses/:id/unbookmarkPOST /api/v1/statuses/:id/mutePOST /api/v1/statuses/:id/unmutePOST /api/v1/statuses/:id/pinPOST /api/v1/statuses/:id/unpinPOST /api/v1/statuses/:idGET /api/v1/statuses/:id/sourceGET /api/v1/statuses/:id/cardGET /api/v1/suggestionsGET /api/v1/tags/:idGET /api/v1/tags/:id/followGET /api/v1/tags/:id/unfollowGET /api/v1/timelines/directGET /api/v1/timelines/home
with_muted Pleroma extension to return notifications from muted users, defaults to falseexclude_replies to only return post statuses not replies/comments, defaults to falseGET /api/v1/timelines/list/:id
with_muted Pleroma extension to return notifications from muted users, defaults to falseexclude_replies to only return post statuses not replies/comments, defaults to falseGET /api/v1/timelines/public
with_muted Pleroma extension to return notifications from muted users, defaults to falseexclude_replies to only return post statuses not replies/comments, defaults to falseGET /api/v1/timelines/tag/:hashtag
with_muted Pleroma extension to return notifications from muted users, defaults to falseexclude_replies to only return post statuses not replies/comments, defaults to falseany[], all[], or none[] query parametersGET /api/v1/trendsGET /api/v1/trends/linksGET /api/v1/trends/statusesGET /api/v1/trends/tags
friendica_local to return local trending tags instead of global tags, defaults to falseGET /api/v2/instanceGET /api/v2/searchThese endpoints are planned to be implemented somewhere in the future.
POST /api/v1/accounts/:id/remove_from_followersGET /api/v1/accounts/familiar_followersGET /api/v1/accounts/lookupPOST /api/v1/polls/:id/votesGET /api/v1/featured_tagsPOST /api/v1/featured_tagsDELETE /api/v1/featured_tags/:idThese endpoints are returning empty data to avoid error messages when using third party clients. They refer to features that don't exist in Friendica yet.
GET /api/v1/accounts/:id/identity_proofsGET /api/v1/announcementsGET /api/v1/endorsementsGET /api/v1/filtersThese endpoints won't be implemented at the moment. They refer to features or data that don't exist in Friendica yet.
POST /api/meta Misskey API endpoint.POST /api/v1/accountsGET /api/v1/accounts/:id/featured_tagsPOST /api/v1/accounts/:id/pinPOST /api/v1/accounts/:id/unpinGET /api/v1/admin/accountsGET /api/v1/admin/accounts/:idPOST /api/v1/admin/accounts/:id/{action}GET /api/v1/admin/reportsGET /api/v1/admin/reports/:idPOST /api/v1/admin/reports/:id/{action}POST /api/v1/announcements/:id/dismissPUT /api/v1/announcements/:id/reactions/{name}DELETE /api/v1/announcements/:id/reactions/{name}GET /api/v1/domain_blocksPOST /api/v1/domain_blocksDELETE /api/v1/domain_blocksDELETE /api/v1/emails/confirmationsGET /api/v1/featured_tags/suggestionsGET /api/v1/filters/:idPOST /api/v1/filters/:idPUT /api/v1/filters/:idDELETE /api/v1/filters/:idGET /api/v1/instance/activityPUT /api/v1/scheduled_statuses/:idGET /api/v1/statuses/{id:\d+}/historyGET /api/v1/streamingDELETE /api/v1/suggestions/:id