Download OpenAPI specification:
Unofficial documentation for the Mastodon API. Generated with mastodon-openapi from 0e8dbc3.
Creates a user and account records. Returns an account access token for the app that initiated the request. The app should save this token for later, and should wait for the user to confirm their account by clicking a link in their email inbox.
Version history:
2.7.0 - added
3.0.0 - added reason
parameter
3.4.0 - added details
to failure response
4.4.0 - added date_of_birth
parameter
JSON request body parameters
agreement required | boolean Whether the user agrees to the local rules, terms, and policies. These should be presented to the user in order to allow them to consent before setting this parameter to TRUE. |
email required | string The email address to be used for login |
locale required | string The language of the confirmation email that will be sent. |
password required | string The password to be used for login |
username required | string The desired username for the account |
date_of_birth | string <date> String ([Date]), required if the server has a minimum age requirement. |
reason | string If registrations require manual approval, this text will be reviewed by moderators. |
{- "agreement": true,
- "email": "string",
- "locale": "string",
- "password": "string",
- "username": "string",
- "date_of_birth": "2019-08-24",
- "reason": "string"
}
{- "access_token": "ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0",
- "token_type": "Bearer",
- "scope": "read write follow push",
- "created_at": 1573979017
}
View information about multiple profiles.
Version history:
4.3.0 - added
id | Array of strings The IDs of the accounts. |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
View information about a profile.
Version history:
0.0.0 - added
2.4.0 - returns 410 if account is suspended
3.3.0 - returns an Account with suspended: true
instead of 410
id required | string id parameter |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
[Blocks]({{< relref "user/moderating#block">}}) the given account.
Version history:
0.0.0 - added
3.5.0 - deprecated follow
scope. now additionally accepts write
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Add the given account to the user's featured profiles.
Version history:
4.4.0 - added
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Accounts that the user is currently featuring on their profile.
Version history:
4.4.0 - added
id required | string id parameter |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Tags featured by this account.
Version history:
3.3.0 - added
id required | string id parameter |
[- {
- "id": "627",
- "name": "nowplaying",
- "statuses_count": 36,
- "last_status_at": "2019-11-15T07:14:43.524Z"
}
]
Follow the given account. Can also be used to update whether to show reblogs or enable notifications.
Version history:
0.0.0 - added
3.3.0 - added notify
3.5.0 - deprecated follow
scope. now additionally accepts write
4.0.0 - added languages
id required | string id parameter |
JSON request body parameters
languages | Array of strings Array of String (ISO 639-1 language two-letter code). Filter received statuses for these languages. If not provided, you will receive this account's posts in all languages. |
notify | boolean Default: false Receive notifications when this account posts a status? Defaults to false. |
reblogs | boolean Default: true Receive this account's reblogs in home timeline? Defaults to true. |
{- "languages": [
- "string"
], - "notify": false,
- "reblogs": true
}
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Accounts which follow the given account, if network is not hidden by the account owner.
Version history:
0.0.0 - added
3.3.0 - both min_id
and max_id
can be used at the same time now
4.0.0 - no longer requires an app token + read:accounts
id required | string id parameter |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Accounts which the given account is following, if network is not hidden by the account owner.
Version history:
0.0.0 - added
3.3.0 - both min_id
and max_id
can be used at the same time now
4.0.0 - no longer requires an app token + read:accounts
id required | string id parameter |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "23634",
- "username": "noiob",
- "acct": "noiob@awoo.space",
- "display_name": "ikea shark fan account",
- "locked": false,
- "bot": false,
- "created_at": "2017-02-08T02:00:53.274Z",
- "note": "<p>:ms_rainbow_flag: :ms_bisexual_flagweb: :ms_nonbinary_flag: <a href=\"https://awoo.space/tags/awoo\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>awoo</span}.space <a href=\"https://awoo.space/tags/admin\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>admin</span} ~ <a href=\"https://awoo.space/tags/bi\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>bi</span} ~ <a href=\"https://awoo.space/tags/nonbinary\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>nonbinary</span} ~ compsci student ~ likes video <a href=\"https://awoo.space/tags/games\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>games</span} and weird/ old electronics and will post obsessively about both ~ avatar by <span class=\"h-card\"><a href=\"https://weirder.earth/@dzuk\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>dzuk</span}</span></p>",
- "followers_count": 547,
- "following_count": 404,
- "statuses_count": 28468,
- "last_status_at": "2019-11-17",
- "emojis": [
- {
- "shortcode": "ms_rainbow_flag",
- "visible_in_picker": true
}, - {
- "shortcode": "ms_bisexual_flag",
- "visible_in_picker": true
}, - {
- "shortcode": "ms_nonbinary_flag",
- "visible_in_picker": true
}
], - "fields": [
- {
- "name": "Pronouns",
- "value": "they/them",
- "verified_at": null
}, - {
- "name": "Alt",
- "value": "<span class=\"h-card\"><a href=\"https://cybre.space/@noiob\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>noiob</span}</span>",
- "verified_at": null
}, - {
- "name": "Bots",
- "value": "<span class=\"h-card\"><a href=\"https://botsin.space/@darksouls\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>darksouls</span}</span>, <span class=\"h-card\"><a href=\"https://botsin.space/@nierautomata\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>nierautomata</span}</span>, <span class=\"h-card\"><a href=\"https://mastodon.social/@fedi\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>fedi</span}</span>, code for <span class=\"h-card\"><a href=\"https://botsin.space/@awoobot\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>awoobot</span}</span>",
- "verified_at": null
}, - {
- "name": "Website",
- "value": "<a href=\"http://shork.xyz\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">http://</span><span class=\"\">shork.xyz</span><span class=\"invisible\"></span}",
- "verified_at": "2019-11-10T10:31:10.744+00:00"
}
]
}
]
Version history:
2.8.0 - added
3.5.0 - deprecated. now returns an empty array.
id required | string id parameter |
[- {
- "provider": "Keybase",
- "provider_username": "gargron",
- "updated_at": "2019-07-21T20:14:39.596Z",
}
]
Mute the given account. Clients should filter statuses and notifications from this account, if received (e.g. due to a boost in the Home timeline).
Version history:
0.0.0 - added
3.3.0 - added duration
3.5.0 - deprecated follow
scope. now additionally accepts write
id required | string id parameter |
JSON request body parameters
duration | integer Default: 0 How long the mute should last, in seconds. Defaults to 0 (indefinite). |
notifications | boolean Default: true Mute notifications in addition to statuses? Defaults to true. |
{- "duration": 0,
- "notifications": true
}
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Sets a private note on a user.
Version history:
3.2.0 - added
id required | string id parameter |
JSON request body parameters
comment | string The comment to be set on that user. Provide an empty string or leave out this parameter to clear the currently set note. |
{- "comment": "string"
}
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Add the given account to the user's featured profiles. (Featured profiles are currently shown on the user's own public profile.)
Version history:
2.5.0 - added
4.0.0 - calling this method is now idempotent
4.4.0 - deprecated in favor of /api/v1/accounts/:id/endorse
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Remove the given account from your followers.
Version history:
3.5.0 - added
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Statuses posted to the given account.
Version history:
0.0.0 - added
1.4.2 - add only_media
and exclude_replies
1.6.0 - add pinned
2.6.0 - add min_id
2.7.0 - add exclude_reblogs
and allow unauthed use
2.8.0 - add tagged
parameter
3.3.0 - both min_id
and max_id
can be used at the same time now
id required | string id parameter |
exclude_reblogs | boolean Filter out boosts from the response. |
exclude_replies | boolean Filter out statuses in reply to a different account. |
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
only_media | boolean Filter out statuses without attachments. |
pinned | boolean Filter for pinned statuses only. Defaults to false, which includes all statuses. Pinned statuses do not receive special priority in the order of the returned results. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
tagged | string Filter for statuses using a specific hashtag. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Unblock the given account.
Version history:
0.0.0 - added
3.5.0 - deprecated follow
scope. now additionally accepts write
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Remove the given account from the user's featured profiles.
Version history:
4.4.0 - added
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Unfollow the given account.
Version history:
0.0.0 - added
3.5.0 - deprecated follow
scope. now additionally accepts write
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Unmute the given account.
Version history:
0.0.0 - added
3.5.0 - deprecated follow
scope. now additionally accepts write
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Remove the given account from the user's featured profiles.
Version history:
2.5.0 - added
4.4.0 - deprecated in favor of /api/v1/accounts/:id/unendorse
id required | string id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Obtain a list of all accounts that follow a given account, filtered for accounts you follow.
Version history:
3.5.0 - added
id | Array of strings Find familiar followers for the provided account IDs. |
[- {
- "id": "1",
- "accounts": [
- {
- "id": "1087990",
- "username": "moss",
- "acct": "moss@goblin.camp"
}, - {
- "id": "1092723",
- "username": "vivianrose",
- "acct": "vivianrose"
}
]
}, - {
- "id": "2",
- "accounts": [ ]
}
]
Quickly lookup a username to see if it is available, skipping WebFinger resolution.
Version history:
3.4.0 - added
acct required | string The username or Webfinger address to lookup. |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Find out whether a given account is followed, blocked, muted, etc.
Version history:
0.0.0 - added
4.3.0 - added with_suspended
parameter
id | Array of strings Check relationships for the provided account IDs. |
with_suspended | boolean Default: false Whether relationships should be returned for suspended users, defaults to false. |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Search for matching accounts by username or display name.
Version history:
0.0.0 - added
2.8.0 - add limit
, offset
and following
q required | string Search query for accounts. |
following | boolean Default: false Limit the search to users you are following. Defaults to false. |
limit | integer Default: 40 Maximum number of results. Defaults to 40 accounts. Max 80 accounts. |
offset | integer Skip the first n results. |
resolve | boolean Default: false Attempt WebFinger lookup. Defaults to false. Use this when |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Update the user's display and preferences.
Version history:
1.1.1 - added
2.3.0 - added locked
parameter
2.4.0 - added source[privacy,sensitive]
parameters
2.4.2 - added source[language]
parameter
2.7.0 - added discoverable
parameter
4.1.0 - added hide_collections
parameter
4.2.0 - added indexable
parameter
4.4.0 (mastodon
[API version] 3) - added attribution_domains
parameter
JSON request body parameters
attribution_domains | Array of strings Domains of websites allowed to credit the account. |
avatar | string Avatar image encoded using |
bot | boolean Whether the account has a bot flag. |
discoverable | boolean Whether the account should be shown in the profile directory. |
display_name | string The display name to use for the profile. |
fields_attributes | object The profile fields to be set. Inside this hash, the key is an integer cast to a string (although the exact integer does not matter), and the value is another hash including |
header | string Header image encoded using |
hide_collections | boolean Whether to hide followers and followed accounts. |
indexable | boolean Whether public posts should be searchable to anyone. |
locked | boolean Whether manual approval of follow requests is required. |
note | string The account bio. |
object Object containing properties |
{- "attribution_domains": [
- "string"
], - "avatar": "string",
- "bot": true,
- "discoverable": true,
- "display_name": "string",
- "fields_attributes": { },
- "header": "string",
- "hide_collections": true,
- "indexable": true,
- "locked": true,
- "note": "string",
- "source": {
- "privacy": "public",
- "sensitive": true,
- "language": "string"
}
}
{- "fields_attributes": {
}
}
See all currently active announcements set by admins.
Version history:
3.1.0 - added
[- {
- "id": "8",
- "content": "<p>Looks like there was an issue processing audio attachments without embedded art since yesterday due to an experimental new feature. That issue has now been fixed, so you may see older posts with audio from other servers pop up in your feeds now as they are being finally properly processed. Sorry!</p>",
- "starts_at": null,
- "ends_at": null,
- "all_day": false,
- "published_at": "2020-07-03T01:27:38.726Z",
- "updated_at": "2020-07-03T01:27:38.752Z",
- "read": true,
- "mentions": [ ],
- "statuses": [ ],
- "tags": [ ],
- "emojis": [ ],
- "reactions": [
- {
- "name": "bongoCat",
- "count": 9,
- "me": false,
}, - {
- "name": "thonking",
- "count": 1,
- "me": false,
}, - {
- "name": "AAAAAA",
- "count": 1,
- "me": false,
}, - {
- "name": "🤔",
- "count": 1,
- "me": true
}
]
}
]
React to an announcement with an emoji.
Version history:
3.1.0 - added
id required | string id parameter |
name required | string name parameter |
{- "error": "The access token is invalid"
}
Undo a react emoji to an announcement.
Version history:
3.1.0 - added
id required | string id parameter |
name required | string name parameter |
{- "error": "The access token is invalid"
}
Create a new application to obtain OAuth2 credentials.
Version history:
0.0.0 - added
2.7.2 - now returns vapid_key
4.3.0 - deprecated vapid_key
, please see [api/v2/instance]
4.3.0 - added support for multiple redirect_uris
in Form data parameters
4.3.0 - added redirect_uris
response property
4.3.0 - deprecated redirect_uri
response property, since this can be a non-URI if multiple redirect_uris
are registered, use redirect_uris
instead
4.3.0 - changed entity type from [Application] to [CredentialApplication]
JSON request body parameters
client_name required | string A name for your application |
redirect_uris required | Array of strings <uri> [ items <uri > ] Where the user should be redirected after authorization. To display the authorization code to the user instead of redirecting to a web page, use |
scopes | string <scopes> Default: "read" Space separated list of scopes. If none is provided, defaults to |
website | string A URL to the homepage of your app |
{- "client_name": "string",
- "scopes": "read",
- "website": "string"
}
{- "id": "563419",
- "name": "Test Application",
- "scopes": [
- "read",
- "write",
- "push"
], - "redirect_uri": "urn:ietf:wg:oauth:2.0:oob",
- "redirect_uris": [
- "urn:ietf:wg:oauth:2.0:oob"
], - "client_id": "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM",
- "client_secret": "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw"
}
Confirm that the app's OAuth2 credentials work.
Version history:
2.0.0 - added
2.7.2 - now returns vapid_key
4.3.0 - deprecated vapid_key
, please see [api/v2/instance]
4.3.0 - removed needing read
scope to access this API, now any valid App token can be used
4.3.0 - added scopes
and redirect_uris
properties
{- "name": "Test Application",
- "scopes": [
- "read",
- "write",
- "push"
],
}
Returns your blocked accounts.
Version history:
0.0.0 - added
3.3.0 - both min_id
and max_id
can be used at the same time now
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Statuses the user has bookmarked.
Version history:
3.1.0 - added
3.3.0 - both min_id
and max_id
can be used at the same time now
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Version history:
2.6.0 - added
3.3.0 - both min_id
and max_id
can be used at the same time now
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 conversations. Max 40 conversations. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "418450",
- "unread": true,
- "accounts": [
- {
- "id": "482403",
- "username": "amic",
- "acct": "amic@nulled.red"
}
], - "last_status": {
- "id": "103196583826321184",
- "created_at": "2019-11-25T04:08:24.000Z",
- "in_reply_to_id": "103196540587943467",
- "in_reply_to_account_id": "14715"
}
}, - {
- "id": "418374",
- "unread": false,
- "accounts": [
- {
- "id": "464472",
- "username": "freon",
- "acct": "freon@letsalllovela.in"
}
], - "last_status": {
- "id": "103195253010396431",
- "created_at": "2019-11-24T22:29:56.331Z",
- "in_reply_to_id": "103195239650546339",
- "in_reply_to_account_id": "14715"
}
}
]
Version history:
2.6.0 - added
id required | string id parameter |
[- {
- "id": "418450",
- "unread": true,
- "accounts": [
- {
- "id": "482403",
- "username": "amic",
- "acct": "amic@nulled.red"
}
], - "last_status": {
- "id": "103196583826321184",
- "created_at": "2019-11-25T04:08:24.000Z",
- "in_reply_to_id": "103196540587943467",
- "in_reply_to_account_id": "14715"
}
}, - {
- "id": "418374",
- "unread": false,
- "accounts": [
- {
- "id": "464472",
- "username": "freon",
- "acct": "freon@letsalllovela.in"
}
], - "last_status": {
- "id": "103195253010396431",
- "created_at": "2019-11-24T22:29:56.331Z",
- "in_reply_to_id": "103195239650546339",
- "in_reply_to_account_id": "14715"
}
}
]
Returns custom emojis that are available on the server.
Version history:
2.0.0 - added
3.0.0 - optional category
added to response
[- {
- "shortcode": "aaaa",
- "visible_in_picker": true
}, - {
- "shortcode": "AAAAAA",
- "visible_in_picker": true
}, - {
- "shortcode": "blobaww",
- "visible_in_picker": true,
- "category": "Blobs"
}, - {
- "shortcode": "yikes",
- "visible_in_picker": true
}, - {
- "shortcode": "ziltoid",
- "visible_in_picker": true
}
]
List accounts visible in the directory.
Version history:
3.0.0 - added
limit | integer Default: 40 How many accounts to load. Defaults to 40 accounts. Max 80 accounts. |
local | boolean If true, returns only local accounts. |
offset | integer Skip the first n results. |
order | string Use |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
View domains the user has blocked.
limit | integer Default: 100 Maximum number of results to return. Defaults to 100 domain blocks. Max 200 domain blocks. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- "nsfw.social",
- "artalley.social"
]
Block a domain to:
JSON request body parameters
domain required | string Domain to block. |
{- "domain": "string"
}
{- "error": "The access token is invalid"
}
Remove a domain block, if it exists in the user's array of blocked domains.
Version history:
1.4.0 - added
JSON request body parameters
domain required | string Domain to unblock. |
{- "domain": "string"
}
{- "error": "The access token is invalid"
}
Resend a new confirmation email. If an email is provided, updates the unconfirmed user's email before resending the confirmation email.
Version history:
3.4.0 - added
JSON request body parameters
string If provided, updates the unconfirmed user's email before resending the confirmation email. |
{- "email": "string"
}
{- "error": "The access token is invalid"
}
Accounts that the user is currently featuring on their profile.
Version history:
2.5.0 - added
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Statuses the user has favourited.
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Version history:
2.4.3 - added
4.0.0 - deprecated. For compatibility purposes, now returns a List of V1::Filter, with each V1::Filter representing one FilterKeyword (with the keyword
being presented in the phrase
attribute)
[- {
- "id": "6191",
- "phrase": ":eurovision2019:",
- "context": [
- "home"
], - "whole_word": true,
- "expires_at": "2019-05-21T13:47:31.333Z",
- "irreversible": false
}, - {
- "id": "5580",
- "phrase": "@twitter.com",
- "context": [
- "home",
- "notifications",
- "public",
- "thread"
], - "whole_word": false,
- "expires_at": null,
- "irreversible": true
}
]
Version history:
2.4.3 - added
3.1.0 - added account
context to filter in profile views
4.0.0 - deprecated. For compatibility purposes, now returns a V1::Filter representing one FilterKeyword (with the keyword
being presented in the phrase
attribute). This method will create a Filter that contains only one FilterKeyword. The title
of the Filter and the keyword
of the FilterKeyword will be set equal to the phrase
provided.
JSON request body parameters
context required | Array of strings (FilterContext) Items Enum: "account" "home" "notifications" "public" "thread" Where the filter should be applied. Specify at least one of |
phrase required | string The text to be filtered. |
expires_in | integer Number of seconds from now that the filter should expire. Otherwise, |
irreversible | boolean Default: false Should the server irreversibly drop matching entities from home and notifications? Defaults to false. |
whole_word | boolean Default: false Should the filter consider word boundaries for this keyword? Defaults to false. |
{- "context": [
- "account"
], - "phrase": "string",
- "expires_in": 0,
- "irreversible": false,
- "whole_word": false
}
[- {
- "id": "6191",
- "phrase": ":eurovision2019:",
- "context": [
- "home"
], - "whole_word": true,
- "expires_at": "2019-05-21T13:47:31.333Z",
- "irreversible": false
}, - {
- "id": "5580",
- "phrase": "@twitter.com",
- "context": [
- "home",
- "notifications",
- "public",
- "thread"
], - "whole_word": false,
- "expires_at": null,
- "irreversible": true
}
]
Version history:
2.4.3 - added
4.0.0 - deprecated. For compatibility purposes, now returns a V1::Filter representing one FilterKeyword (with the keyword
being presented in the phrase
attribute)
id required | string id parameter |
[- {
- "id": "6191",
- "phrase": ":eurovision2019:",
- "context": [
- "home"
], - "whole_word": true,
- "expires_at": "2019-05-21T13:47:31.333Z",
- "irreversible": false
}, - {
- "id": "5580",
- "phrase": "@twitter.com",
- "context": [
- "home",
- "notifications",
- "public",
- "thread"
], - "whole_word": false,
- "expires_at": null,
- "irreversible": true
}
]
Replaces a filter's parameters in-place.
Version history:
2.4.3 - added
3.1.0 - added account
context to filter in profile views
4.0.0 - deprecated. For compatibility purposes, now returns a V1::Filter representing one FilterKeyword (with the keyword
being presented in the phrase
attribute). This method will return an error if you attempt to change expires_in
, irreversible
, or context
for a filter with multiple keywords. Changing phrase
and whole_word
is always safe.
id required | string id parameter |
JSON request body parameters
context required | Array of strings (FilterContext) Items Enum: "account" "home" "notifications" "public" "thread" Specify at least one of |
phrase required | string The text to be filtered. |
expires_in | integer Number of seconds from now that the filter should expire. Otherwise, |
irreversible | boolean Default: false Should the server irreversibly drop matching entities from home and notifications? Defaults to false. |
whole_word | boolean Default: false Should the filter consider word boundaries? Defaults to false. |
{- "context": [
- "account"
], - "phrase": "string",
- "expires_in": 0,
- "irreversible": false,
- "whole_word": false
}
[- {
- "id": "6191",
- "phrase": ":eurovision2019:",
- "context": [
- "home"
], - "whole_word": true,
- "expires_at": "2019-05-21T13:47:31.333Z",
- "irreversible": false
}, - {
- "id": "5580",
- "phrase": "@twitter.com",
- "context": [
- "home",
- "notifications",
- "public",
- "thread"
], - "whole_word": false,
- "expires_at": null,
- "irreversible": true
}
]
Version history:
2.4.3 - added
4.0.0 - deprecated. This method will delete only the FilterKeyword from its parent Filter. To delete the parent Filter, you must use the v2 filters API.
id required | string id parameter |
{- "error": "The access token is invalid"
}
Obtain a list of all filter groups for the current user.
Version history:
4.0.0 - added
[- {
- "id": "20060",
- "title": "Remove Twitter crossposts from public timeline",
- "context": [
- "public"
], - "expires_at": null,
- "filter_action": "hide",
- "keywords": [
- {
- "id": "1311",
- "keyword": "from birdsite",
- "whole_word": true
}, - {
- "id": "1324",
- "keyword": "@twitter.com",
- "whole_word": false
},
], - "statuses": [ ]
}
]
Create a filter group with the given parameters.
Version history:
4.0.0 - added
4.4.0 (mastodon
[API version] 5) - added blur
value to filter_action
attribute
JSON request body parameters
context required | Array of strings (FilterContext) Items Enum: "account" "home" "notifications" "public" "thread" Where the filter should be applied. Specify at least one of |
title required | string The name of the filter group. |
expires_in | integer How many seconds from now should the filter expire? |
filter_action | string The policy to be applied when the filter is matched. Specify |
Array of objects Array of objects with properties: keyword, whole_word, id, _destroy |
{- "context": [
- "account"
], - "title": "string",
- "expires_in": 0,
- "filter_action": "string",
- "keywords_attributes": [
- {
- "keyword": "string",
- "whole_word": true,
- "id": "string",
- "_destroy": true
}
]
}
[- {
- "id": "20060",
- "title": "Remove Twitter crossposts from public timeline",
- "context": [
- "public"
], - "expires_at": null,
- "filter_action": "hide",
- "keywords": [
- {
- "id": "1311",
- "keyword": "from birdsite",
- "whole_word": true
}, - {
- "id": "1324",
- "keyword": "@twitter.com",
- "whole_word": false
},
], - "statuses": [ ]
}
]
List all keywords attached to the current filter group.
Version history:
4.0.0 - added
filter_id required | string filter_id parameter |
[- {
- "id": "34979",
- "keyword": "baz",
- "whole_word": true
}
]
Add the given keyword to the specified filter group
Version history:
4.0.0 - added
filter_id required | string filter_id parameter |
JSON request body parameters
keyword required | string The keyword to be added to the filter group. |
whole_word | boolean Whether the keyword should consider word boundaries. |
{- "keyword": "string",
- "whole_word": true
}
[- {
- "id": "34979",
- "keyword": "baz",
- "whole_word": true
}
]
Obtain a list of all status filters within this filter group.
Version history:
4.0.0 - added
filter_id required | string filter_id parameter |
[- {
- "id": "897",
- "status_id": "109416512469928632"
}
]
Add a status filter to the current filter group.
Version history:
4.0.0 - added
filter_id required | string filter_id parameter |
JSON request body parameters
status_id required | string The status ID to be added to the filter group. |
{- "status_id": "string"
}
[- {
- "id": "897",
- "status_id": "109416512469928632"
}
]
Obtain a single filter group owned by the current user.
Version history:
4.0.0 - added
id required | string id parameter |
[- {
- "id": "20060",
- "title": "Remove Twitter crossposts from public timeline",
- "context": [
- "public"
], - "expires_at": null,
- "filter_action": "hide",
- "keywords": [
- {
- "id": "1311",
- "keyword": "from birdsite",
- "whole_word": true
}, - {
- "id": "1324",
- "keyword": "@twitter.com",
- "whole_word": false
},
], - "statuses": [ ]
}
]
Update a filter group with the given parameters.
Version history:
4.0.0 - added
4.4.0 (mastodon
[API version] 5) - added blur
value to filter_action
attribute
id required | string id parameter |
JSON request body parameters
context | Array of strings (FilterContext) Items Enum: "account" "home" "notifications" "public" "thread" Where the filter should be applied. Specify at least one of |
expires_in | integer How many seconds from now should the filter expire? |
filter_action | string The policy to be applied when the filter is matched. Specify |
Array of objects Array of objects with properties: keyword, whole_word, id, _destroy | |
title | string The name of the filter group. |
{- "context": [
- "account"
], - "expires_in": 0,
- "filter_action": "string",
- "keywords_attributes": [
- {
- "keyword": "string",
- "whole_word": true,
- "id": "string",
- "_destroy": true
}
], - "title": "string"
}
[- {
- "id": "20060",
- "title": "Remove Twitter crossposts from public timeline",
- "context": [
- "public"
], - "expires_at": null,
- "filter_action": "hide",
- "keywords": [
- {
- "id": "1311",
- "keyword": "from birdsite",
- "whole_word": true
}, - {
- "id": "1324",
- "keyword": "@twitter.com",
- "whole_word": false
},
], - "statuses": [ ]
}
]
Update the given filter keyword.
Version history:
4.0.0 - added
id required | string id parameter |
JSON request body parameters
keyword required | string The keyword to be added to the filter group. |
whole_word | boolean Whether the keyword should consider word boundaries. |
{- "keyword": "string",
- "whole_word": true
}
[- {
- "id": "34979",
- "keyword": "baz",
- "whole_word": true
}
]
Remove a status filter from the current filter group.
Version history:
4.0.0 - added
id required | string id parameter |
[- {
- "id": "897",
- "status_id": "109416512469928632"
}
]
Version history:
0.0.0 - added
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Version history:
0.0.0 - added
3.0.0 - now returns Relationship instead of nothing
account_id required | string account_id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Version history:
0.0.0 - added
3.0.0 - now returns Relationship instead of nothing
account_id required | string account_id parameter |
{- "id": "3",
- "following": false,
- "showing_reblogs": false,
- "notifying": false,
- "followed_by": false,
- "blocking": true,
- "blocked_by": false,
- "muting": false,
- "muting_notifications": false,
- "requested": false,
- "domain_blocking": false,
- "endorsed": false
}
Obtain general information about the server. See [api/v2/instance]({{< relref "methods/Instance#v2">}}) instead.
Version history:
1.1.0 - added
3.0.0 - requires user token if instance is in whitelist mode
3.1.4 - added invites_enabled
to response
3.4.0 - added rules
3.4.2 - added configuration
4.0.0 - deprecated. added configuration[accounts]
.
{- "uri": "mastodon.social",
- "title": "Mastodon",
- "short_description": "The original server operated by the Mastodon gGmbH non-profit",
- "description": "",
- "email": "staff@mastodon.social",
- "version": "3.5.3",
- "urls": {
- "streaming_api": "wss://mastodon.social"
}, - "stats": {
- "user_count": 812303,
- "status_count": 38151616,
- "domain_count": 25255
}, - "languages": [
- "en"
], - "registrations": false,
- "approval_required": false,
- "invites_enabled": true,
- "configuration": {
- "statuses": {
- "max_characters": 500,
- "max_media_attachments": 4,
- "characters_reserved_per_url": 23
}, - "media_attachments": {
- "supported_mime_types": [
- "image/jpeg",
- "image/png",
- "image/gif",
- "image/webp",
- "video/webm",
- "video/mp4",
- "video/quicktime",
- "video/ogg",
- "audio/wave",
- "audio/wav",
- "audio/x-wav",
- "audio/x-pn-wave",
- "audio/vnd.wave",
- "audio/ogg",
- "audio/vorbis",
- "audio/mpeg",
- "audio/mp3",
- "audio/webm",
- "audio/flac",
- "audio/aac",
- "audio/m4a",
- "audio/x-m4a",
- "audio/mp4",
- "audio/3gpp",
- "video/x-ms-asf"
], - "image_size_limit": 10485760,
- "image_matrix_limit": 16777216,
- "video_size_limit": 41943040,
- "video_frame_rate_limit": 60,
- "video_matrix_limit": 2304000
}, - "polls": {
- "max_options": 4,
- "max_characters_per_option": 50,
- "min_expiration": 300,
- "max_expiration": 2629746
}
}, - "contact_account": {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "discoverable": true,
- "group": false,
- "created_at": "2016-03-16T00:00:00.000Z",
- "note": "<p>Founder, CEO and lead developer <span class=\"h-card\"><a href=\"https://mastodon.social/@Mastodon\" class=\"u-url mention\">@<span>Mastodon</span></a></span>, Germany.</p>",
- "followers_count": 118944,
- "following_count": 305,
- "statuses_count": 72309,
- "last_status_at": "2022-08-24",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}
]
}, - "rules": [
- {
- "id": "1",
- "text": "Sexually explicit or violent media must be marked as sensitive when posting"
}, - {
- "id": "2",
- "text": "No racism, sexism, homophobia, transphobia, xenophobia, or casteism"
}, - {
- "id": "3",
- "text": "No incitement of violence or promotion of violent ideologies"
}, - {
- "id": "4",
- "text": "No harassment, dogpiling or doxxing of other users"
}, - {
- "id": "5",
- "text": "No content illegal in Germany"
}, - {
- "id": "7",
- "text": "Do not share intentionally false or misleading information"
}
]
}
Instance activity over the last 3 months, binned weekly.
Version history:
2.1.2 - added
3.0.0 - requires user token if instance is in whitelist mode
[- {
- "week": "1574640000",
- "statuses": "37125",
- "logins": "14239",
- "registrations": "542"
}, - {
- "week": "1574035200",
- "statuses": "244447",
- "logins": "28820",
- "registrations": "4425"
}, - {
- "week": "1573430400",
- "statuses": "270615",
- "logins": "35388",
- "registrations": "8781"
}, - {
- "week": "1572825600",
- "statuses": "309722",
- "logins": "44433",
- "registrations": "26165"
}, - {
- "week": "1572220800",
- "statuses": "116227",
- "logins": "19739",
- "registrations": "2926"
}, - {
- "week": "1571616000",
- "statuses": "119932",
- "logins": "19247",
- "registrations": "3188"
}, - {
- "week": "1571011200",
- "statuses": "117892",
- "logins": "19164",
- "registrations": "3107"
}, - {
- "week": "1570406400",
- "statuses": "109092",
- "logins": "18763",
- "registrations": "2986"
}, - {
- "week": "1569801600",
- "statuses": "107554",
- "logins": "19614",
- "registrations": "2904"
}, - {
- "week": "1569196800",
- "statuses": "118067",
- "logins": "19703",
- "registrations": "3295"
}, - {
- "week": "1568592000",
- "statuses": "110199",
- "logins": "19791",
- "registrations": "3026"
}, - {
- "week": "1567987200",
- "statuses": "106029",
- "logins": "19089",
- "registrations": "2769"
}
]
Obtain a list of domains that have been blocked.
Version history:
4.0.0 - added
[- {
- "domain": "birb.elfenban.de",
- "digest": "5d2c6e02a0cced8fb05f32626437e3d23096480b47efbba659b6d9e80c85d280",
- "severity": "suspend",
- "comment": "Third-party bots"
}, - {
- "domain": "birdbots.leptonics.com",
- "digest": "ce019d8d32cce8e369ac4367f4dc232103e6f489fbdd247fb99f9c8a646078a4",
- "severity": "suspend",
- "comment": "Third-party bots"
}
]
Obtain an extended description of this server
Version history:
4.0.0 - added
{- "updated_at": "2022-11-03T04:09:07Z",
- "content": "<p>For inquiries not related specifically to the operation of this server, such as press inquiries, please contact <a href=\"mailto:press@joinmastodon.org\">press@joinmastodon.org</a>.</p>\n\n<h2>Funding</h2>\n\n<p>This server is crowdfunded by <a href=\"https://patreon.com/mastodon\">Patreon donations</a>. For a list of sponsors, see <a href=\"https://joinmastodon.org/sponsors\">joinmastodon.org</a>.</p>\n\n<h2>Reporting and moderation</h2>\n\n<p>When reporting accounts, please make sure to include at least a few posts that show rule-breaking behaviour, when applicable. If there is any additional context that might help make a decision, please also include it in the comment. This is especially important when the content is in a language nobody on the moderation team speaks.</p>\n\n<p>We usually handle reports within 24 hours. Please mind that you are not notified when a report you have made has led to a punitive action, and that not all punitive actions are externally visible. For first time offenses, we may opt to delete offending content, escalating to harsher measures on repeat offenses.</p>\n\n<h2>Impressum</h2>\n\n<p>Mastodon gGmbH<br>\nMühlenstraße 8a<br>\n14167 Berlin<br>\nGermany</p>\n\n<p>E-Mail-Adresse: hello@joinmastodon.org</p>\n\n<p>Vertretungsberechtigt: Eugen Rochko (Geschäftsführer)</p>\n\n<p>Umsatzsteuer Identifikationsnummer (USt-ID): DE344258260</p>\n\n<p>Handelsregister<br>\nGeführt bei: Amtsgericht Charlottenburg<br>\nNummer: HRB 230086 B</p>\n"
}
Obtain the contents of this server's privacy policy.
Version history:
4.0.0 - added
{- "updated_at": "2022-10-07T00:00:00+00:00",
- "content": "<p>This privacy policy describes how example.com ("example.com", "we", "us") collects,\nprotects and uses the personally identifiable information you may provide\nthrough the example.com website or its API.</p>\n\n<h1>What information do we collect?</h1>\n\n<ul>\n<li><strong>Basic account information</strong>: If you register on this server, you may be\nasked to enter a username, an e-mail address and a password.</li>\n<li><strong>Posts, following and other public information</strong>: The list of people you\nfollow is listed publicly, the same is true for your followers.</li>\n<li><strong>Direct and followers-only posts</strong>: All posts are stored and processed on the\nserver. You may\ntoggle an option to approve and reject new followers manually in the settings.\n<strong>Please keep in mind that the operators of the server and any receiving\nserver may view such messages</strong>, and that recipients may screenshot, copy or\notherwise re-share them. <strong>Do not share any sensitive information over\nMastodon.</strong></li>\n<li><strong>IPs and other metadata</strong>: When you log in, we record the IP address you log\nin from, as well as the name of your browser application.</li>\n</ul>\n\n<hr>\n\n<p>This document is CC-BY-SA. Originally adapted from the <a href=\"https://github.com/discourse/discourse\">Discourse privacy\npolicy</a>.</p>\n"
}
Rules that the users of this service should follow.
Version history:
3.4.0 - added
[- {
- "id": "1",
- "text": "Sexually explicit or violent media must be marked as sensitive when posting"
}, - {
- "id": "2",
- "text": "No racism, sexism, homophobia, transphobia, xenophobia, or casteism"
}, - {
- "id": "3",
- "text": "No incitement of violence or promotion of violent ideologies"
}, - {
- "id": "4",
- "text": "No harassment, dogpiling or doxxing of other users"
}, - {
- "id": "5",
- "text": "No content illegal in Germany"
}, - {
- "id": "7",
- "text": "Do not share intentionally false or misleading information"
}
]
Obtain the contents of this server's terms of service, if configured.
Version history:
4.4.0 - added
{- "effective_date": "2025-04-15",
- "effective": true,
- "content": "<p>Foo bar newer</p>\n",
- "succeeded_by": null
}
Obtain the contents of this server's terms of service, for a specified date, if configured.
Version history:
4.4.0 - added
date required | string date parameter |
{- "effective_date": "2025-04-15",
- "effective": true,
- "content": "<p>Foo bar newer</p>\n",
- "succeeded_by": null
}
Obtain general information about the server.
Version history:
4.0.0 - added
4.3.0 - added configuration.vapid.public_key
{- "domain": "mastodon.social",
- "title": "Mastodon",
- "version": "4.0.0rc1",
- "description": "The original server operated by the Mastodon gGmbH non-profit",
- "usage": {
- "users": {
- "active_month": 123122
}
}, - "thumbnail": {
- "blurhash": "UeKUpFxuo~R%0nW;WCnhF6RjaJt757oJodS$",
}, - "icon": [
- {
- "size": "36x36"
}, - {
- "size": "72x72"
}, - {
- "size": "192x192"
}, - {
- "size": "512x512"
}
], - "languages": [
- "en"
], - "configuration": {
- "urls": {
- "streaming": "wss://mastodon.social"
}, - "vapid": {
- "public_key": "BCkMmVdKDnKYwzVCDC99Iuc9GvId-x7-kKtuHnLgfF98ENiZp_aj-UNthbCdI70DqN1zUVis-x0Wrot2sBagkMc="
}, - "accounts": {
- "max_featured_tags": 10,
- "max_pinned_statuses": 4
}, - "statuses": {
- "max_characters": 500,
- "max_media_attachments": 4,
- "characters_reserved_per_url": 23
}, - "media_attachments": {
- "supported_mime_types": [
- "image/jpeg",
- "image/png",
- "image/gif",
- "image/heic",
- "image/heif",
- "image/webp",
- "video/webm",
- "video/mp4",
- "video/quicktime",
- "video/ogg",
- "audio/wave",
- "audio/wav",
- "audio/x-wav",
- "audio/x-pn-wave",
- "audio/vnd.wave",
- "audio/ogg",
- "audio/vorbis",
- "audio/mpeg",
- "audio/mp3",
- "audio/webm",
- "audio/flac",
- "audio/aac",
- "audio/m4a",
- "audio/x-m4a",
- "audio/mp4",
- "audio/3gpp",
- "video/x-ms-asf"
], - "description_limit": 1500,
- "image_size_limit": 10485760,
- "image_matrix_limit": 16777216,
- "video_size_limit": 41943040,
- "video_frame_rate_limit": 60,
- "video_matrix_limit": 2304000
}, - "polls": {
- "max_options": 4,
- "max_characters_per_option": 50,
- "min_expiration": 300,
- "max_expiration": 2629746
}, - "translation": {
- "enabled": true
}
}, - "registrations": {
- "enabled": false,
- "approval_required": false,
- "message": null
}, - "contact": {
- "email": "staff@mastodon.social",
- "account": {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen 💀",
- "locked": false,
- "bot": false,
- "discoverable": true,
- "group": false,
- "created_at": "2016-03-16T00:00:00.000Z",
- "note": "<p>Founder, CEO and lead developer <span class=\"h-card\"><a href=\"https://mastodon.social/@Mastodon\" class=\"u-url mention\">@<span>Mastodon</span></a></span>, Germany.</p>",
- "followers_count": 133026,
- "following_count": 311,
- "statuses_count": 72605,
- "last_status_at": "2022-10-31",
- "noindex": false,
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}
]
}
}, - "rules": [
- {
- "id": "1",
- "text": "Sexually explicit or violent media must be marked as sensitive when posting"
}, - {
- "id": "2",
- "text": "No racism, sexism, homophobia, transphobia, xenophobia, or casteism"
}, - {
- "id": "3",
- "text": "No incitement of violence or promotion of violent ideologies"
}, - {
- "id": "4",
- "text": "No harassment, dogpiling or doxxing of other users"
}, - {
- "id": "5",
- "text": "No content illegal in Germany"
}, - {
- "id": "7",
- "text": "Do not share intentionally false or misleading information"
}
]
}
Create a new list.
Version history:
2.1.0 - added
3.3.0 - added replies_policy
4.2.0 - added exclusive
JSON request body parameters
title required | string The title of the list to be created. |
exclusive | boolean Whether members of this list need to get removed from the “Home” feed. |
replies_policy | string (PolicyEnum) Default: "list" Enum: "followed" "list" "none" One of |
{- "title": "string",
- "exclusive": true,
- "replies_policy": "followed"
}
[- {
- "id": "13694",
- "title": "dev"
}
]
Change the properties of a list.
Version history:
2.1.0 - added
3.3.0 - added replies_policy
4.2.0 - added exclusive
id required | string id parameter |
JSON request body parameters
title required | string The title of the list to be created. |
exclusive | boolean Whether members of this list need to get removed from the “Home” feed. |
replies_policy | string (PolicyEnum) Default: "list" Enum: "followed" "list" "none" One of |
{- "title": "string",
- "exclusive": true,
- "replies_policy": "followed"
}
[- {
- "id": "13694",
- "title": "dev"
}
]
Version history:
2.1.0 - added
3.3.0 - both min_id
and max_id
can be used at the same time now
id required | string id parameter |
limit | integer Default: 40 Maximum number of results. Defaults to 40 accounts. Max 80 accounts. Set to 0 in order to get all accounts without pagination. |
max_id | string Internal parameter. Use HTTP |
min_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Add accounts to the given list. Note that the user must be following these accounts.
Version history:
2.1.0 - added
id required | string id parameter |
JSON request body parameters
account_ids required | Array of strings The accounts that should be added to the list. |
{- "account_ids": [
- "string"
]
}
{- "error": "The access token is invalid"
}
Remove accounts from the given list.
Version history:
2.1.0 - added
id required | string id parameter |
JSON request body parameters
account_ids required | Array of strings The accounts that should be removed from the list. |
{- "account_ids": [
- "string"
]
}
{- "error": "The access token is invalid"
}
Get current positions in timelines.
Version history:
3.0.0 - added
timeline | Array of strings Items Enum: "home" "notifications" Specify the timeline(s) for which markers should be fetched. Possible values: |
{- "notifications": {
- "last_read_id": "35098814",
- "version": 361,
- "updated_at": "2019-11-26T22:37:25.239Z"
}, - "home": {
- "last_read_id": "103206604258487607",
- "version": 468,
- "updated_at": "2019-11-26T22:37:25.235Z"
}
}
Save current position in timeline.
Version history:
3.0.0 - added
JSON request body parameters
object Object containing properties | |
object Object containing properties |
{- "home": {
- "last_read_id": "string"
}, - "notifications": {
- "last_read_id": "string"
}
}
{- "notifications": {
- "last_read_id": "35098814",
- "version": 361,
- "updated_at": "2019-11-26T22:37:25.239Z"
}, - "home": {
- "last_read_id": "103206604258487607",
- "version": 468,
- "updated_at": "2019-11-26T22:37:25.235Z"
}
}
Creates an attachment to be used with a new status. This method will return after the full sized media is done processing.
Version history:
0.0.0 - added
2.3.0 - add focus
parameter
3.1.3 - deprecated in favor of [POST /api/v2/media], which is equal to v1 in all aspects, except it returns HTTP 202, and the returned JSON object has a url of null. This is because while the thumbnail is prepared synchronously, the full version of the media attachment will be processed in the background.
3.2.0 - add thumbnail
parameter
Multipart form data parameters
file required | string <binary> The file to be attached, encoded using multipart form data. The file must have a MIME type. |
description | string A plain-text description of the media, for accessibility purposes. |
focus | string Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0. See [Focal points for cropping media thumbnails] for more information. |
thumbnail | string <binary> The custom thumbnail of the media to be attached, encoded using multipart form data. |
{- "id": "22348641",
- "type": "image",
- "remote_url": null,
- "meta": {
- "focus": {
- "x": -0.69,
- "y": 0.42
}, - "original": {
- "width": 640,
- "height": 480,
- "size": "640x480",
- "aspect": 1.3333333333333333
}, - "small": {
- "width": 461,
- "height": 346,
- "size": "461x346",
- "aspect": 1.3323699421965318
}
}, - "description": "test uploaded via api",
- "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
}
Get a media attachment, before it is attached to a status and posted, but after it is accepted for processing. Use this method to check that the full-sized media has finished processing.
Version history:
3.1.3 - added
id required | string id parameter |
{- "id": "22348641",
- "type": "image",
- "remote_url": null,
- "meta": {
- "focus": {
- "x": -0.69,
- "y": 0.42
}, - "original": {
- "width": 640,
- "height": 480,
- "size": "640x480",
- "aspect": 1.3333333333333333
}, - "small": {
- "width": 461,
- "height": 346,
- "size": "461x346",
- "aspect": 1.3323699421965318
}
}, - "description": "test uploaded via api",
- "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
}
Delete a media attachment that is not currently attached to a status.
Version history:
mastodon
[API version] 4) - addedid required | string id parameter |
{- "error": "The access token is invalid"
}
Update a MediaAttachment's parameters, before it is attached to a status and posted.
Version history:
0.0.0 - added
2.3.0 - add focus
parameter
3.2.0 - added thumbnail
id required | string id parameter |
Multipart form data parameters
description | string A plain-text description of the media, for accessibility purposes. |
focus | string Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0. See [Focal points for cropping media thumbnails] for more information. |
thumbnail | string <binary> The custom thumbnail of the media to be attached, encoded using multipart form data. |
{- "id": "22348641",
- "type": "image",
- "remote_url": null,
- "meta": {
- "focus": {
- "x": -0.69,
- "y": 0.42
}, - "original": {
- "width": 640,
- "height": 480,
- "size": "640x480",
- "aspect": 1.3333333333333333
}, - "small": {
- "width": 461,
- "height": 346,
- "size": "461x346",
- "aspect": 1.3323699421965318
}
}, - "description": "test uploaded via api",
- "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
}
Creates a media attachment to be used with a new status. The full sized media will be processed asynchronously in the background for large uploads.
Version history:
3.1.3 - added
3.2.0 - add thumbnail
parameter
4.0.0 - Smaller media formats (image) will be processed synchronously and return 200 instead of 202. Larger media formats (video, gifv, audio) will continue to be processed asynchronously and return 202.
Multipart form data parameters
file required | string <binary> The file to be attached, encoded using multipart form data. The file must have a MIME type. |
description | string A plain-text description of the media, for accessibility purposes. |
focus | string Two floating points (x,y), comma-delimited, ranging from -1.0 to 1.0. See [Focal points for cropping media thumbnails] for more information. |
thumbnail | string <binary> The custom thumbnail of the media to be attached, encoded using multipart form data. |
{- "id": "22348641",
- "type": "image",
- "remote_url": null,
- "meta": {
- "focus": {
- "x": -0.69,
- "y": 0.42
}, - "original": {
- "width": 640,
- "height": 480,
- "size": "640x480",
- "aspect": 1.3333333333333333
}, - "small": {
- "width": 461,
- "height": 346,
- "size": "461x346",
- "aspect": 1.3323699421965318
}
}, - "description": "test uploaded via api",
- "blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
}
Accounts the user has muted.
Version history:
0.0.0 - added
3.3.0 - added mute_expires_at
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Notifications concerning the user. This API returns Link headers containing links to the next/previous page. However, the links can also be constructed dynamically using query params and id
values.
Version history:
0.0.0 - added
2.6.0 - added min_id
2.9.0 - added account_id
3.1.0 - added follow_request
type
3.3.0 - added status
type; both min_id
and max_id
can be used at the same time now
3.5.0 - added types
; add update
and admin.sign_up
types
4.0.0 - added admin.report
type
4.1.0 - notification limit changed from 15 (max 30) to 40 (max 80)
4.3.0 - added include_filtered
parameter
account_id | string Return only notifications received from the specified account. |
exclude_types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Types to exclude from the results. |
include_filtered | boolean Default: false Whether to include notifications filtered by the user's [NotificationPolicy]. Defaults to false. |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 notifications. Max 80 notifications. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Types to include in the result. |
[- {
- "id": "34975861",
- "type": "mention",
- "created_at": "2019-11-23T07:49:02.064Z",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "status": {
- "id": "103186126728896492",
- "created_at": "2019-11-23T07:49:01.940Z",
- "in_reply_to_id": "103186038209478945",
- "in_reply_to_account_id": "14715",
- "content": "<p><span class=\"h-card\"><a href=\"https://mastodon.social/@trwnh\" class=\"u-url mention\">@<span>trwnh</span></a></span> sup!</p>",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "mentions": [
]
}
}, - {
- "id": "34975535",
- "type": "favourite",
- "created_at": "2019-11-23T07:29:18.903Z",
- "account": {
- "id": "297420",
- "username": "haskal",
- "acct": "haskal@cybre.space"
}, - "status": {
- "id": "103186046267791694",
- "created_at": "2019-11-23T07:28:34.210Z",
- "in_reply_to_id": "103186044372624124",
- "in_reply_to_account_id": "297420",
- "account": {
- "id": "14715",
- "username": "trwnh",
- "acct": "trwnh"
}
}
}
]
View information about a notification with a given ID.
Version history:
0.0.0 - added
id required | string id parameter |
[- {
- "id": "34975861",
- "type": "mention",
- "created_at": "2019-11-23T07:49:02.064Z",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "status": {
- "id": "103186126728896492",
- "created_at": "2019-11-23T07:49:01.940Z",
- "in_reply_to_id": "103186038209478945",
- "in_reply_to_account_id": "14715",
- "content": "<p><span class=\"h-card\"><a href=\"https://mastodon.social/@trwnh\" class=\"u-url mention\">@<span>trwnh</span></a></span> sup!</p>",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "mentions": [
]
}
}, - {
- "id": "34975535",
- "type": "favourite",
- "created_at": "2019-11-23T07:29:18.903Z",
- "account": {
- "id": "297420",
- "username": "haskal",
- "acct": "haskal@cybre.space"
}, - "status": {
- "id": "103186046267791694",
- "created_at": "2019-11-23T07:28:34.210Z",
- "in_reply_to_id": "103186044372624124",
- "in_reply_to_account_id": "297420",
- "account": {
- "id": "14715",
- "username": "trwnh",
- "acct": "trwnh"
}
}
}
]
Notification requests for notifications filtered by the user's policy. This API returns Link headers containing links to the next/previous page.
Version history:
4.3.0 - added
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 notification requests. Max 80 notification requests. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "112456967201894256",
- "created_at": "2024-05-17T14:45:41.171Z",
- "updated_at": "2024-05-17T14:45:41.171Z",
- "notifications_count": "1",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "last_status": {
- "id": "103186126728896492",
- "created_at": "2019-11-23T07:49:01.940Z",
- "in_reply_to_id": "103186038209478945",
- "in_reply_to_account_id": "14715",
- "content": "<p><span class=\"h-card\"><a href=\"https://mastodon.social/@trwnh\" class=\"u-url mention\">@<span>trwnh</span></a></span> sup!</p>",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "mentions": [
]
}
}
]
View information about a notification request with a given ID.
Version history:
4.3.0 - added
id required | string id parameter |
[- {
- "id": "112456967201894256",
- "created_at": "2024-05-17T14:45:41.171Z",
- "updated_at": "2024-05-17T14:45:41.171Z",
- "notifications_count": "1",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "last_status": {
- "id": "103186126728896492",
- "created_at": "2019-11-23T07:49:01.940Z",
- "in_reply_to_id": "103186038209478945",
- "in_reply_to_account_id": "14715",
- "content": "<p><span class=\"h-card\"><a href=\"https://mastodon.social/@trwnh\" class=\"u-url mention\">@<span>trwnh</span></a></span> sup!</p>",
- "account": {
- "id": "971724",
- "username": "zsc",
- "acct": "zsc"
}, - "mentions": [
]
}
}
]
Accept a notification request, which merges the filtered notifications from that user back into the main notification and accepts any future notification from them.
Version history:
4.3.0 - added
id required | string id parameter |
{- "error": "The access token is invalid"
}
Dismiss a notification request, which hides it and prevent it from contributing to the pending notification requests count.
Version history:
4.3.0 - added
id required | string id parameter |
{- "error": "The access token is invalid"
}
Accepts multiple notification requests, which merges the filtered notifications from those users back into the main notifications and accepts any future notification from them.
Version history:
4.3.0 - added
{- "error": "The access token is invalid"
}
Dismiss multiple notification requests, which hides them and prevent them from contributing to the pending notification requests count.
Version history:
4.3.0 - added
{- "error": "The access token is invalid"
}
Get the (capped) number of unread notifications for the current user.
account_id | string Only count unread notifications received from the specified account. |
exclude_types | Array of strings Types of notifications that should not count towards unread notifications. |
limit | integer Default: 100 Maximum number of results to return. Defaults to 100 notifications. Max 1000 notifications. |
types | Array of strings Types of notifications that should count towards unread notifications. |
{- "error": "The access token is invalid"
}
Return grouped notifications concerning the user. This API returns Link headers containing links to the next/previous page. However, the links can also be constructed dynamically using query params and id
values.
Version history:
4.3.0-beta.1 - added
4.3.0-beta.2 - deprecated
account_id | string Return only notifications received from the specified account. |
exclude_types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Types to exclude from the results. |
expand_accounts | string One of |
grouped_types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 notifications. Max 80 notification groups. |
max_id | string All results returned will be about notifications strictly older than this notification ID. In effect, sets an upper bound on results. |
min_id | string Returns results about notifications immediately newer than this notification ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be about notifications strictly newer than this notification ID. In effect, sets a lower bound on results. |
types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Types to include in the result. |
{- "accounts": [
- {
- "id": "16",
- "username": "eve",
- "acct": "eve"
}, - {
- "id": "3547",
- "username": "alice",
- "acct": "alice"
}, - {
- "id": "31460",
- "username": "bob",
- "acct": "bob"
}, - {
- "id": "36509",
- "username": "mallory",
- "acct": "mallory"
}
], - "statuses": [
- {
- "id": "113010503322889311",
- "created_at": "2024-08-23T08:57:12.057Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}, - {
- "id": "113006771938929950",
- "created_at": "2024-08-22T17:08:15.654Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}
], - "notification_groups": [
- {
- "group_key": "favourite-113010503322889311-479000",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196014,
- "page_min_id": "196013",
- "page_max_id": "196014",
- "latest_page_notification_at": "2024-08-23T08:59:56.743Z",
- "sample_account_ids": [
- "16",
- "3547"
], - "status_id": "113010503322889311"
}, - {
- "group_key": "favourite-113006771938929950-478999",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196012,
- "page_min_id": "196012",
- "page_max_id": "196012",
- "latest_page_notification_at": "2024-08-23T08:16:32.112Z",
- "sample_account_ids": [
- "31460",
- "36509"
], - "status_id": "113006771938929950"
}
]
}
View information about a specific notification group with a given group key.
Version history:
4.3.0-beta.1 - added
4.3.0-beta.2 - deprecated
group_key required | string group_key parameter |
{- "accounts": [
- {
- "id": "16",
- "username": "eve",
- "acct": "eve"
}, - {
- "id": "3547",
- "username": "alice",
- "acct": "alice"
}, - {
- "id": "31460",
- "username": "bob",
- "acct": "bob"
}, - {
- "id": "36509",
- "username": "mallory",
- "acct": "mallory"
}
], - "statuses": [
- {
- "id": "113010503322889311",
- "created_at": "2024-08-23T08:57:12.057Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}, - {
- "id": "113006771938929950",
- "created_at": "2024-08-22T17:08:15.654Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}
], - "notification_groups": [
- {
- "group_key": "favourite-113010503322889311-479000",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196014,
- "page_min_id": "196013",
- "page_max_id": "196014",
- "latest_page_notification_at": "2024-08-23T08:59:56.743Z",
- "sample_account_ids": [
- "16",
- "3547"
], - "status_id": "113010503322889311"
}, - {
- "group_key": "favourite-113006771938929950-478999",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196012,
- "page_min_id": "196012",
- "page_max_id": "196012",
- "latest_page_notification_at": "2024-08-23T08:16:32.112Z",
- "sample_account_ids": [
- "31460",
- "36509"
], - "status_id": "113006771938929950"
}
]
}
Dismiss a single notification group from the server.
Version history:
4.3.0-beta.1 - added
4.3.0-beta.2 - deprecated
group_key required | string group_key parameter |
{- "error": "The access token is invalid"
}
Get the (capped) number of unread notification groups for the current user.
account_id | string Only count unread notifications received from the specified account. |
exclude_types | Array of strings Types of notifications that should not count towards unread notifications. |
grouped_types | Array of strings Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, |
limit | integer Default: 100 Maximum number of results to return. Defaults to 100 notifications. Max 1000 notifications. |
types | Array of strings Types of notifications that should count towards unread notifications. |
{- "error": "The access token is invalid"
}
Return grouped notifications concerning the user. This API returns Link headers containing links to the next/previous page. However, the links can also be constructed dynamically using query params and id
values.
Version history:
4.3.0 (mastodon
[API version] 2) - added
4.4.0 - added admin.sign_up
to grouped notification types
account_id | string Return only notifications received from the specified account. |
exclude_types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Types to exclude from the results. |
expand_accounts | string One of |
grouped_types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, |
include_filtered | boolean Default: false Whether to include notifications filtered by the user's [NotificationPolicy]. Defaults to false. |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 notifications. Max 80 notification groups. |
max_id | string All results returned will be about notifications strictly older than this notification ID. In effect, sets an upper bound on results. |
min_id | string Returns results about notifications immediately newer than this notification ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be about notifications strictly newer than this notification ID. In effect, sets a lower bound on results. |
types | Array of strings (TypesEnum) Items Enum: "admin.report" "admin.sign_up" "favourite" "follow" "follow_request" "mention" "poll" "reblog" "status" "update" Types to include in the result. |
{- "accounts": [
- {
- "id": "16",
- "username": "eve",
- "acct": "eve"
}, - {
- "id": "3547",
- "username": "alice",
- "acct": "alice"
}, - {
- "id": "31460",
- "username": "bob",
- "acct": "bob"
}, - {
- "id": "36509",
- "username": "mallory",
- "acct": "mallory"
}
], - "statuses": [
- {
- "id": "113010503322889311",
- "created_at": "2024-08-23T08:57:12.057Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}, - {
- "id": "113006771938929950",
- "created_at": "2024-08-22T17:08:15.654Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}
], - "notification_groups": [
- {
- "group_key": "favourite-113010503322889311-479000",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196014,
- "page_min_id": "196013",
- "page_max_id": "196014",
- "latest_page_notification_at": "2024-08-23T08:59:56.743Z",
- "sample_account_ids": [
- "16",
- "3547"
], - "status_id": "113010503322889311"
}, - {
- "group_key": "favourite-113006771938929950-478999",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196012,
- "page_min_id": "196012",
- "page_max_id": "196012",
- "latest_page_notification_at": "2024-08-23T08:16:32.112Z",
- "sample_account_ids": [
- "31460",
- "36509"
], - "status_id": "113006771938929950"
}
]
}
View information about a specific notification group with a given group key.
Version history:
4.3.0 (mastodon
[API version] 2) - added
group_key required | string group_key parameter |
{- "accounts": [
- {
- "id": "16",
- "username": "eve",
- "acct": "eve"
}, - {
- "id": "3547",
- "username": "alice",
- "acct": "alice"
}, - {
- "id": "31460",
- "username": "bob",
- "acct": "bob"
}, - {
- "id": "36509",
- "username": "mallory",
- "acct": "mallory"
}
], - "statuses": [
- {
- "id": "113010503322889311",
- "created_at": "2024-08-23T08:57:12.057Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}, - {
- "id": "113006771938929950",
- "created_at": "2024-08-22T17:08:15.654Z",
- "account": {
- "id": "55911",
- "username": "user",
- "acct": "user"
}
}
], - "notification_groups": [
- {
- "group_key": "favourite-113010503322889311-479000",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196014,
- "page_min_id": "196013",
- "page_max_id": "196014",
- "latest_page_notification_at": "2024-08-23T08:59:56.743Z",
- "sample_account_ids": [
- "16",
- "3547"
], - "status_id": "113010503322889311"
}, - {
- "group_key": "favourite-113006771938929950-478999",
- "notifications_count": 2,
- "type": "favourite",
- "most_recent_notification_id": 196012,
- "page_min_id": "196012",
- "page_max_id": "196012",
- "latest_page_notification_at": "2024-08-23T08:16:32.112Z",
- "sample_account_ids": [
- "31460",
- "36509"
], - "status_id": "113006771938929950"
}
]
}
Version history:
4.3.0 (mastodon
[API version] 2) - added
group_key required | string group_key parameter |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Dismiss a single notification group from the server.
Version history:
4.3.0 (mastodon
[API version] 2) - added
group_key required | string group_key parameter |
{- "error": "The access token is invalid"
}
Notifications filtering policy for the user.
Version history:
4.3.0 - added
{- "filter_not_following": false,
- "filter_not_followers": false,
- "filter_new_accounts": false,
- "filter_private_mentions": true,
- "summary": {
- "pending_requests_count": 0,
- "pending_notifications_count": 0
}
}
Get the (capped) number of unread notification groups for the current user.
account_id | string Only count unread notifications received from the specified account. |
exclude_types | Array of strings Types of notifications that should not count towards unread notifications. |
grouped_types | Array of strings Restrict which notification types can be grouped. Use this if there are notification types for which your client does not support grouping. If omitted, the server will group notifications of all types it supports (currently, |
limit | integer Default: 100 Maximum number of results to return. Defaults to 100 notifications. Max 1000 notifications. |
types | Array of strings Types of notifications that should count towards unread notifications. |
{- "error": "The access token is invalid"
}
Displays an authorization form to the user. If approved, it will create and return an authorization code, then redirect to the desired redirect_uri
, or show the authorization code if urn:ietf:wg:oauth:2.0:oob
was requested. The authorization code can be used while requesting a token to obtain access to user-level methods.
Version history:
0.1.0 - added
2.6.0 - added force_login
3.5.0 - added lang
4.3.0 - added support for PKCE parameters
client_id required | string The client ID, obtained during app registration. |
redirect_uri required | string Set a URI to redirect the user to. If this parameter is set to |
response_type required | string Should be set equal to |
code_challenge | string The [PKCE code challenge] for the authorization request. |
code_challenge_method | string Must be |
force_login | boolean Forces the user to re-login, which is necessary for authorizing with multiple accounts from the same instance. |
lang | string The ISO 639-1 two-letter language code to use while rendering the authorization form. |
scope | string Default: "read" List of requested [OAuth scopes], separated by spaces (or by pluses, if using query parameters). Must be a subset of |
state | string Arbitrary value to passthrough to your server when the user authorizes or rejects the authorization request. |
{- "error": "The access token is invalid"
}
Revoke an access token to make it no longer valid for use.
Version history:
0.1.0 - added
JSON request body parameters
client_id required | string The client ID, obtained during app registration. |
client_secret required | string The client secret, obtained during app registration. |
token required | string The previously obtained token, to be invalidated. |
{- "client_id": "string",
- "client_secret": "string",
- "token": "string"
}
{- "error": "The access token is invalid"
}
Obtain an access token, to be used during API calls that are not public.
Version history:
0.1.0 - added
4.3.0 - added support for PKCE parameter
JSON request body parameters
client_id required | string The client ID, obtained during app registration. |
client_secret required | string The client secret, obtained during app registration. |
code required | string A user authorization code, obtained from the redirect after an [Authorization request] is approved. May alternatively be displayed to the user if |
grant_type required | string Set equal to |
redirect_uri required | string Must match the |
code_verifier | string Required if [PKCE] is used during the authorization request. This is the code verifier which was used to create the |
scope | string Default: "read" When |
{- "client_id": "string",
- "client_secret": "string",
- "code": "string",
- "grant_type": "string",
- "redirect_uri": "string",
- "code_verifier": "string",
- "scope": "read"
}
{- "access_token": "ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0",
- "token_type": "Bearer",
- "scope": "read write follow push",
- "created_at": 1573979017
}
Retrieves standardised OIDC claims about the currently authenticated user.\
Version history:
4.4.0 - added
{- "error": "The access token is invalid"
}
Version history:
1.0.0 - added
url required | string URL of a status. |
maxheight | integer Default: "null" Height of the iframe. Defaults to null |
maxwidth | integer Default: 400 Width of the iframe. Defaults to 400 |
{- "type": "rich",
- "version": "1.0",
- "title": "New status by trwnh",
- "author_name": "infinite love ⴳ",
- "provider_name": "mastodon.social",
- "cache_age": 86400,
- "html": "<iframe src=\"https://mastodon.social/@trwnh/99664077509711321/embed\" class=\"mastodon-embed\" style=\"max-width: 100%; border: 0\" width=\"400\" allowfullscreen=\"allowfullscreen\"></iframe><script src=\"https://mastodon.social/embed.js\" async=\"async\"></script>",
- "width": 400,
- "height": null
}
View a poll attached to a status.
Version history:
2.8.0 - added
id required | string id parameter |
{- "id": "34830",
- "expires_at": "2019-12-05T04:05:08.302Z",
- "expired": true,
- "multiple": false,
- "votes_count": 10,
- "voters_count": null,
- "voted": true,
- "own_votes": [
- 1
], - "options": [
- {
- "title": "accept",
- "votes_count": 6
}, - {
- "title": "deny",
- "votes_count": 4
}
], - "emojis": [ ]
}
Vote on a poll attached to a status.
Version history:
2.8.0 - added
id required | string id parameter |
JSON request body parameters
choices required | Array of integers Provide your own votes as an index for each option (starting from 0). |
{- "choices": [
- 0
]
}
{- "id": "34830",
- "expires_at": "2019-12-05T04:05:08.302Z",
- "expired": true,
- "multiple": false,
- "votes_count": 10,
- "voters_count": null,
- "voted": true,
- "own_votes": [
- 1
], - "options": [
- {
- "title": "accept",
- "votes_count": 6
}, - {
- "title": "deny",
- "votes_count": 4
}
], - "emojis": [ ]
}
Add a Web Push API subscription to receive notifications. Each access token can have one push subscription. If you create a new subscription, the old subscription is deleted.
Version history:
2.4.0 - added
3.3.0 - added data[alerts][status]
3.4.0 - added data[policy]
3.5.0 - added data[alerts][update]
and data[alerts][admin.sign_up]
4.0.0 - added data[alerts][admin.report]
4.3.0 - added stricter request parameter validation, invalid endpoint URLs and subscription keys will now result in an error, previously these would be accepted, but silently fail.
4.4.0 - added subscription[standard]
JSON request body parameters
required | object Object containing properties |
object Object containing properties |
{- "subscription": {
- "keys": {
- "p256dh": "string",
- "auth": "string"
}, - "endpoint": "string",
- "standard": true
}, - "data": {
- "alerts": {
- "mention": true,
- "status": true,
- "reblog": true,
- "follow": true,
- "follow_request": true,
- "favourite": true,
- "poll": true,
- "update": true,
- "admin.sign_up": true,
- "admin.report": true
}, - "policy": "string"
}
}
{- "id": 328183,
- "standard": true,
- "alerts": {
- "follow": true,
- "favourite": true,
- "reblog": true,
- "mention": true,
- "poll": true
}, - "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M="
}
View the PushSubscription currently associated with this access token.
Version history:
2.4.0 - added
{- "id": 328183,
- "standard": true,
- "alerts": {
- "follow": true,
- "favourite": true,
- "reblog": true,
- "mention": true,
- "poll": true
}, - "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M="
}
Updates the current push subscription. Only the data part can be updated. To change fundamentals, a new subscription must be created instead.
Version history:
2.4.0 - added
3.3.0 - added data[alerts][status]
3.4.0 - added policy
3.5.0 - added data[alerts][update]
and data[alerts][admin.sign_up]
4.0.0 - added data[alerts][admin.report]
JSON request body parameters
object Object containing properties | |
policy | string Specify whether to receive push notifications from |
{- "data": {
- "alerts": {
- "mention": true,
- "status": true,
- "reblog": true,
- "follow": true,
- "follow_request": true,
- "favourite": true,
- "poll": true,
- "update": true,
- "admin.sign_up": true,
- "admin.report": true
}
}, - "policy": "string"
}
{- "id": 328183,
- "standard": true,
- "alerts": {
- "follow": true,
- "favourite": true,
- "reblog": true,
- "mention": true,
- "poll": true
}, - "server_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M="
}
Report problematic accounts and contents to your moderators.
Version history:
1.1 - added
2.3.0 - add forward
parameter
3.5.0 - add category
and rule_ids
parameters
4.0.0 - category
is now optional if rule_ids
is provided
4.2.0 - add legal
category
JSON request body parameters
account_id required | string ID of the account to report. |
category | string Default: "other" Enum: "spam" "legal" "violation" "other" Specify if the report is due to |
comment | string The reason for the report. Default maximum of 1000 characters. |
forward | boolean Default: false If the account is remote, should the report be forwarded to the remote admin? Defaults to false. |
rule_ids | Array of strings For |
status_ids | Array of strings You can attach statuses to the report to provide additional context. |
{- "account_id": "string",
- "category": "spam",
- "comment": "string",
- "forward": false,
- "rule_ids": [
- "string"
], - "status_ids": [
- "string"
]
}
{- "id": "48914",
- "action_taken": false,
- "action_taken_at": null,
- "category": "spam",
- "comment": "Spam account",
- "forwarded": false,
- "created_at": "2022-08-25T09:56:16.763Z",
- "status_ids": [
- "108882889550545820"
], - "rule_ids": null,
- "target_account": {
- "id": "108366849347798387",
- "username": "Baluke",
- "acct": "Baluke",
- "display_name": "Baluke Dental Studios",
- "locked": false,
- "bot": false,
- "discoverable": false,
- "group": false,
- "created_at": "2022-05-26T00:00:00.000Z",
- "note": "<p>Baluke Dental Studios is a full service dental lab offering fabrication, staining, and digital services. Advanced technologies and a meticulous process ensure reduced chair time, lower costs, and better patient outcomes with beautiful smiles. Talk to a representative today.</p><p><a href=\"https://baluke.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><span class=\"invisible\">https://</span><span class=\"\">baluke.com/</span><span class=\"invisible\"></span></a></p>",
- "followers_count": 0,
- "following_count": 0,
- "statuses_count": 38,
- "last_status_at": "2022-08-25",
- "emojis": [ ],
- "fields": [ ]
}
}
Version history:
2.7.0 - added
3.3.0 - both min_id
and max_id
can be used at the same time now
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "3221",
- "scheduled_at": "2019-12-05T12:33:01.000Z",
- "params": {
- "poll": null,
- "text": "test content",
- "media_ids": null,
- "sensitive": null,
- "visibility": null,
- "idempotency": null,
- "scheduled_at": null,
- "spoiler_text": null,
- "application_id": 596551,
- "in_reply_to_id": null
}, - "media_attachments": [ ]
}
]
Version history:
2.7.0 - added
id required | string id parameter |
[- {
- "id": "3221",
- "scheduled_at": "2019-12-05T12:33:01.000Z",
- "params": {
- "poll": null,
- "text": "test content",
- "media_ids": null,
- "sensitive": null,
- "visibility": null,
- "idempotency": null,
- "scheduled_at": null,
- "spoiler_text": null,
- "application_id": 596551,
- "in_reply_to_id": null
}, - "media_attachments": [ ]
}
]
Version history:
2.7.0 - added
id required | string id parameter |
JSON request body parameters
scheduled_at | string <date-time> [Datetime] at which the status will be published. Must be at least 5 minutes into the future. |
{- "scheduled_at": "2019-08-24T14:15:22Z"
}
[- {
- "id": "3221",
- "scheduled_at": "2019-12-05T12:33:01.000Z",
- "params": {
- "poll": null,
- "text": "test content",
- "media_ids": null,
- "sensitive": null,
- "visibility": null,
- "idempotency": null,
- "scheduled_at": null,
- "spoiler_text": null,
- "application_id": 596551,
- "in_reply_to_id": null
}, - "media_attachments": [ ]
}
]
Perform a search for content in accounts, statuses and hashtags with the given parameters.
Version history:
2.4.1 - added, limit hardcoded to 5
2.8.0 - add type
, limit
, offset
, min_id
, max_id
, account_id
3.0.0 - add exclude_unreviewed
param
3.3.0 - min_id
and max_id
can be used together
4.0.0 - no longer requires a user token. Without a valid user token, you cannot use the resolve
or offset
parameters.
q required | string The search query. |
account_id | string If provided, will only return statuses authored by this account. |
exclude_unreviewed | boolean Default: false Filter out unreviewed tags? Defaults to false. Use true when trying to find trending tags. |
following | boolean Default: false Only include accounts that the user is following? Defaults to false. |
limit | integer Default: 20 Maximum number of results to return, per type. Defaults to 20 results per category. Max 40 results per category. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
offset | integer Skip the first n results. |
resolve | boolean Only relevant if |
type | string Specify whether to search for only |
{- "accounts": [
- {
- "id": "23634",
- "username": "noiob",
- "acct": "noiob@awoo.space",
- "display_name": "ikea shark fan account",
- "locked": false,
- "bot": false,
- "created_at": "2017-02-08T02:00:53.274Z",
- "note": "<p>:ms_rainbow_flag: :ms_bisexual_flagweb: :ms_nonbinary_flag: <a href=\"https://awoo.space/tags/awoo\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>awoo</span}.space <a href=\"https://awoo.space/tags/admin\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>admin</span} ~ <a href=\"https://awoo.space/tags/bi\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>bi</span} ~ <a href=\"https://awoo.space/tags/nonbinary\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>nonbinary</span} ~ compsci student ~ likes video <a href=\"https://awoo.space/tags/games\" class=\"mention hashtag\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">#<span>games</span} and weird/ old electronics and will post obsessively about both ~ avatar by <span class=\"h-card\"><a href=\"https://weirder.earth/@dzuk\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>dzuk</span}</span></p>",
- "followers_count": 547,
- "following_count": 404,
- "statuses_count": 28468,
- "last_status_at": "2019-11-17",
- "emojis": [
- {
- "shortcode": "ms_rainbow_flag",
- "visible_in_picker": true
}, - {
- "shortcode": "ms_bisexual_flag",
- "visible_in_picker": true
}, - {
- "shortcode": "ms_nonbinary_flag",
- "visible_in_picker": true
}
], - "fields": [
- {
- "name": "Pronouns",
- "value": "they/them",
- "verified_at": null
}, - {
- "name": "Alt",
- "value": "<span class=\"h-card\"><a href=\"https://cybre.space/@noiob\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>noiob</span}</span>",
- "verified_at": null
}, - {
- "name": "Bots",
- "value": "<span class=\"h-card\"><a href=\"https://botsin.space/@darksouls\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>darksouls</span}</span>, <span class=\"h-card\"><a href=\"https://botsin.space/@nierautomata\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>nierautomata</span}</span>, <span class=\"h-card\"><a href=\"https://mastodon.social/@fedi\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>fedi</span}</span>, code for <span class=\"h-card\"><a href=\"https://botsin.space/@awoobot\" class=\"u-url mention\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">@<span>awoobot</span}</span>",
- "verified_at": null
}, - {
- "name": "Website",
- "value": "<a href=\"http://shork.xyz\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">http://</span><span class=\"\">shork.xyz</span><span class=\"invisible\"></span}",
- "verified_at": "2019-11-10T10:31:10.744+00:00"
}
]
}
], - "hashtags": [
- {
- "id": "802",
- "name": "nowplaying",
- "history": [
- {
- "day": "1574553600",
- "uses": "200",
- "accounts": "31"
}, - {
- "day": "1574467200",
- "uses": "272",
- "accounts": "39"
}, - {
- "day": "1574380800",
- "uses": "345",
- "accounts": "40"
}, - {
- "day": "1574294400",
- "uses": "366",
- "accounts": "46"
}, - {
- "day": "1574208000",
- "uses": "226",
- "accounts": "32"
}, - {
- "day": "1574121600",
- "uses": "217",
- "accounts": "42"
}, - {
- "day": "1574035200",
- "uses": "214",
- "accounts": "34"
}
], - "following": false,
- "featuring": false
}
], - "statuses": [
- {
- "id": "103270115826048975",
- "created_at": "2019-12-08T03:48:33.901Z",
- "in_reply_to_id": null,
- "in_reply_to_account_id": null,
- "sensitive": false,
- "spoiler_text": "",
- "visibility": "public",
- "language": "en",
- "replies_count": 5,
- "reblogs_count": 6,
- "favourites_count": 11,
- "favourited": false,
- "reblogged": false,
- "muted": false,
- "bookmarked": false,
- "content": "<p>"I lost my inheritance with one wrong digit on my sort code"</p><p><a href=\"https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"ellipsis\">theguardian.com/money/2019/dec</span><span class=\"invisible\">/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code</span}</p>",
- "reblog": null,
- "application": {
- "name": "Web",
- "website": null
}, - "account": {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "discoverable": true,
- "group": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 322930,
- "following_count": 459,
- "statuses_count": 61323,
- "last_status_at": "2019-12-10T08:14:44.811Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span}",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span}",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}, - "media_attachments": [ ],
- "mentions": [ ],
- "tags": [ ],
- "emojis": [ ],
- "card": {
- "title": "‘I lost my £193,000 inheritance – with one wrong digit on my sort code’",
- "description": "When Peter Teich’s money went to another Barclays customer, the bank offered £25 as a token gesture",
- "type": "link",
- "author_name": "",
- "author_url": "",
- "provider_name": "",
- "provider_url": "",
- "html": "",
- "width": 0,
- "height": 0,
- "image": null,
- "embed_url": ""
}, - "poll": null
}
]
}
Publish a status with the given parameters.
Version history:
0.0.0 - added
2.7.0 - scheduled_at
added
2.8.0 - poll
added
Idempotency-Key | object Provide this header with any arbitrary string to prevent duplicate submissions of the same status. Consider using a hash or UUID generated client-side. Idempotency keys are stored for up to 1 hour. |
JSON request body parameters for creating a status. Different types of statuses have different requirements.
in_reply_to_id | string ID of the status being replied to, if status is a reply. |
language | string ISO 639-1 language code for this status. |
scheduled_at | string <date-time> [Datetime] at which to schedule a status. Providing this parameter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future. |
sensitive | boolean Default: false Mark status and attached media as sensitive? Defaults to false. |
spoiler_text | string Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field. |
visibility | string (VisibilityEnum) Enum: "direct" "private" "public" "unlisted" Sets the visibility of the posted status to |
status required | string The text content of the status. If |
{- "in_reply_to_id": "string",
- "language": "string",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "sensitive": false,
- "spoiler_text": "string",
- "visibility": "direct",
- "status": "string"
}
{- "id": "103254962155278888",
- "created_at": "2019-12-05T11:34:47.196Z",
- "content": "<p>test content</p>",
- "application": {
- "name": "test app",
- "website": null
}
}
Obtain information about multiple statuses.
Version history:
4.3.0 - added
id | Array of strings The IDs of the Statuses in the database. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Obtain information about a status.
Version history:
0.0.0 - added
2.7.0 - public statuses no longer require token
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Delete one of your own statuses.
Version history:
0.0.0 - added
2.9.0 - return source properties, for use with delete and redraft
4.4.0 (mastodon
[API version] 4) - added delete_media
optional parameter
id required | string id parameter |
delete_media | boolean Whether to immediately delete the post's media attachments. If omitted or |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Edit a given status to change its text, sensitivity, media attachments, or poll. Note that editing a poll’s options or changing whether it is multiple choice will reset the votes.
Version history:
3.5.0 - added
4.0.0 - add language
id required | string id parameter |
JSON request body parameters
language | string ISO 639-1 language code for the status. |
media_attributes[] | Array of strings Each array includes id, description, and focus. |
media_ids | Array of strings Include Attachment IDs to be attached as media. If provided, |
object Object containing properties | |
sensitive | boolean Whether the status should be marked as sensitive. |
spoiler_text | string The plain text subject or content warning of the status. |
status | string The plain text content of the status. |
{- "language": "string",
- "media_attributes[]": [
- "string"
], - "media_ids": [
- "string"
], - "poll": {
- "options": [
- "string"
], - "expires_in": 0,
- "multiple": true,
- "hide_totals": true
}, - "sensitive": true,
- "spoiler_text": "string",
- "status": "string"
}
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Privately bookmark a status.
Version history:
3.1.0 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Version history:
0.0.0 - added
2.6.0 - deprecated in favor of card property inlined on Status entity
3.0.0 - removed
id required | string id parameter |
{- "title": "♪ Brand New Friend (Christmas Song!)",
- "description": "",
- "type": "video",
- "author_name": "YOGSCAST Lewis & Simon",
- "provider_name": "YouTube",
- "html": "<iframe width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/OMv_EPMED8Y?feature=oembed\" frameborder=\"0\" allowfullscreen=\"\"></iframe>",
- "width": 480,
- "height": 270,
- "embed_url": ""
}
View statuses above and below this status in the thread.
Version history:
0.0.0 - added
4.0.0 - limit unauthenticated requests
id required | string id parameter |
{- "ancestors": [
- {
- "id": "103188938570975982",
- "created_at": "2019-11-23T19:44:00.124Z",
- "in_reply_to_id": null,
- "in_reply_to_account_id": null
}, - {
- "id": "103188971072973252",
- "created_at": "2019-11-23T19:52:23.398Z",
- "in_reply_to_id": "103188938570975982",
- "in_reply_to_account_id": "634458"
}, - {
- "id": "103188982235527758",
- "created_at": "2019-11-23T19:55:08.208Z",
- "in_reply_to_id": "103188971072973252",
- "in_reply_to_account_id": "14715"
}
], - "descendants": [
- {
- "id": "103189026958574542",
- "created_at": "2019-11-23T20:06:36.011Z",
- "in_reply_to_id": "103189005915505698",
- "in_reply_to_account_id": "634458"
}
]
}
Add a status to your favourites list.
Version history:
0.0.0 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
View who favourited a given status.
Version history:
0.0.0 - added
id required | string id parameter |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Get all known versions of a status, including the initial and current states.
Version history:
3.5.0 - added
id required | string id parameter |
[- {
- "content": "<p>this is a status that will be edited</p>",
- "spoiler_text": "",
- "sensitive": false,
- "created_at": "2022-09-04T23:22:13.704Z",
- "account": {
- "id": "14715",
- "username": "trwnh",
- "acct": "trwnh",
- "display_name": "infinite love ⴳ"
}, - "media_attachments": [ ],
- "emojis": [ ]
}, - {
- "content": "<p>this is a status that has been edited</p>",
- "spoiler_text": "",
- "sensitive": false,
- "created_at": "2022-09-04T23:22:42.555Z",
- "account": {
- "id": "14715",
- "username": "trwnh",
- "acct": "trwnh",
- "display_name": "infinite love ⴳ"
}, - "media_attachments": [ ],
- "emojis": [ ]
}, - {
- "content": "<p>this is a status that has been edited twice</p>",
- "spoiler_text": "",
- "sensitive": false,
- "created_at": "2022-09-04T23:22:55.956Z",
- "account": {
- "id": "14715",
- "username": "trwnh",
- "acct": "trwnh",
- "display_name": "infinite love ⴳ"
}, - "media_attachments": [ ],
- "emojis": [ ]
}, - {
- "content": "<p>this is a status that has been edited three times. this time a poll has been added.</p>",
- "spoiler_text": "",
- "sensitive": false,
- "created_at": "2022-09-05T00:01:48.160Z",
- "poll": {
- "options": [
- {
- "title": "cool"
}, - {
- "title": "uncool"
}, - {
- "title": "spiderman"
}
]
}, - "account": {
- "id": "14715",
- "username": "trwnh",
- "acct": "trwnh",
- "display_name": "infinite love ⴳ"
}, - "media_attachments": [ ],
- "emojis": [ ]
}, - {
- "content": "<p>this is a status that has been edited three times. this time a poll has been added.</p>",
- "spoiler_text": "",
- "sensitive": false,
- "created_at": "2022-09-05T00:03:32.480Z",
- "poll": {
- "options": [
- {
- "title": "cool"
}, - {
- "title": "uncool"
}, - {
- "title": "spiderman (this option has been changed)"
}
]
}, - "account": {
- "id": "14715",
- "username": "trwnh",
- "acct": "trwnh",
- "display_name": "infinite love ⴳ"
}, - "media_attachments": [ ],
- "emojis": [ ]
}
]
Do not receive notifications for the thread that this status is part of. Must be a thread in which you are a participant.
Version history:
1.4.2 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Feature one of your own public statuses at the top of your profile.
Version history:
1.6.0 - added
3.5.0 - you can now pin private posts
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Reshare a status on your own profile.
Version history:
0.0.0 - added
2.8.0 - add visibility
parameter
id required | string id parameter |
JSON request body parameters
visibility | string Default: "public" Any visibility except |
{- "visibility": "public"
}
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
View who boosted a given status.
Version history:
0.0.0 - added
id required | string id parameter |
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
max_id | string Internal parameter. Use HTTP |
since_id | string Internal parameter. Use HTTP |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Obtain the source properties for a status so that it can be edited.
Version history:
3.5.0 - added
id required | string id parameter |
{- "id": "108942703571991143",
- "text": "this is a status that will be edited",
- "spoiler_text": ""
}
Translate the status content into some language.
Version history:
4.0.0 - added
id required | string id parameter |
JSON request body parameters
lang | string String (ISO 639-1 language code). The status content will be translated into this language. Defaults to the user's current locale. |
{- "lang": "string"
}
{- "content": "<p>Hello world</p>",
- "spoiler_text": "Greatings ahead",
- "media_attachments": [
- {
- "id": 22345792,
- "description": "Status author waving at the camera"
}
], - "poll": null,
- "detected_source_language": "es",
- "provider": "DeepL.com"
}
Remove a status from your private bookmarks.
Version history:
3.1.0 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Remove a status from your favourites list.
Version history:
0.0.0 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Start receiving notifications again for the thread that this status is part of.
Version history:
1.4.2 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Unfeature a status from the top of your profile.
Version history:
1.6.0 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Undo a reshare of a status.
Version history:
0.0.0 - added
id required | string id parameter |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Returns all public statuses for a particular hashtag
Version history:
1.0.0 - added
3.5.0 - now returns status.update
4.2.0 - changed to require a User token, removing Public and App token access [#23989]
tag required | string The name of the hashtag to watch. |
{- "error": "The access token is invalid"
}
Returns all local public statuses for a particular hashtag
Version history:
1.1.0 - added
3.5.0 - now returns status.update
4.2.0 - changed to require a User token, removing Public and App token access [#23989]
tag required | string The name of the hashtag to watch. |
{- "error": "The access token is invalid"
}
Returns statuses for a list
Version history:
2.1.0 - added
3.5.0 - now returns status.update
4.2.0 - changed to require a User token, removing Public and App token access [#23989]
list required | string The ID of the list to watch. |
{- "error": "The access token is invalid"
}
Returns all public statuses
Version history:
1.0.0 - added
2.4.0 - add only_media
parameter
3.5.0 - now returns status.update
4.2.0 - changed to require a User token, removing Public and App token access [#23989]
only_media | boolean If true, return only statuses with media attachments. |
{- "error": "The access token is invalid"
}
Returns all local public statuses
Version history:
1.1.0 - added
2.4.0 - add only_media
parameter
3.5.0 - now returns status.update
4.2.0 - changed to require a User token, removing Public and App token access [#23989]
only_media | boolean If true, return only statuses with media attachments. |
{- "error": "The access token is invalid"
}
Returns all public statuses from remote servers.
Version history:
3.1.4 - added
3.5.0 - now returns status.update
4.2.0 - changed to require a User token, removing Public and App token access [#23989]
only_media | boolean If true, return only statuses with media attachments. |
{- "error": "The access token is invalid"
}
Returns events that are relevant to the authorized user, i.e. home timeline and notifications
Version history:
1.0.0 - added
1.4.2 - now returns notification
2.4.3 - now returns filters_changed
3.1.0 - now returns announcement
, announcement.reaction
, announcement.delete
3.5.0 - now returns status.update
{- "error": "The access token is invalid"
}
Accounts the user has had past positive interactions with, but is not yet following.
Version history:
2.4.3 - added
3.4.0 - deprecated
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
[- {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 318699,
- "following_count": 453,
- "statuses_count": 61013,
- "last_status_at": "2019-11-30T20:02:08.277Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span></a>",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}
]
Accounts that are promoted by staff, or that the user has had past positive interactions with, but is not yet following.
Version history:
3.4.0 - added
limit | integer Default: 40 Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. |
[- {
- "source": "staff",
- "account": {
- "id": "109031732217496096",
- "username": "alice",
- "acct": "alice"
}
}
]
View statuses with a "direct" privacy, from your account or in your notifications.
Version history:
x.x.x - added
2.6.0 - add min_id
. deprecated in favor of [Conversations API]
3.0.0 - removed
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
View statuses from followed users and hashtags.
Version history:
0.0.0 - added
2.6.0 - add min_id
3.3.0 - both min_id
and max_id
can be used at the same time now
4.0.0 - as users can now follow hashtags, statuses from non-followed users may appear in the timeline
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
View public statuses containing a link to the specified currently-trending article. This only lists statuses from people who have opted in to discoverability features.
Version history:
4.3.0 - added
url required | string The URL of the trending article. |
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "103270115826048975",
- "created_at": "2019-12-08T03:48:33.901Z",
- "in_reply_to_id": null,
- "in_reply_to_account_id": null,
- "sensitive": false,
- "spoiler_text": "",
- "visibility": "public",
- "language": "en",
- "replies_count": 5,
- "reblogs_count": 6,
- "favourites_count": 11,
- "favourited": false,
- "reblogged": false,
- "muted": false,
- "bookmarked": false,
- "content": "<p>"I lost my inheritance with one wrong digit on my sort code"</p><p><a href=\"https://www.theguardian.com/money/2019/dec/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"ellipsis\">theguardian.com/money/2019/dec</span><span class=\"invisible\">/07/i-lost-my-193000-inheritance-with-one-wrong-digit-on-my-sort-code</span}</p>",
- "reblog": null,
- "application": {
- "name": "Web",
- "website": null
}, - "account": {
- "id": "1",
- "username": "Gargron",
- "acct": "Gargron",
- "display_name": "Eugen",
- "locked": false,
- "bot": false,
- "discoverable": true,
- "group": false,
- "created_at": "2016-03-16T14:34:26.392Z",
- "note": "<p>Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.</p>",
- "followers_count": 322930,
- "following_count": 459,
- "statuses_count": 61323,
- "last_status_at": "2019-12-10T08:14:44.811Z",
- "emojis": [ ],
- "fields": [
- {
- "name": "Patreon",
- "value": "<a href=\"https://www.patreon.com/mastodon\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://www.</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span}",
- "verified_at": null
}, - {
- "name": "Homepage",
- "value": "<a href=\"https://zeonfederated.com\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"\">zeonfederated.com</span><span class=\"invisible\"></span}",
- "verified_at": "2019-07-15T18:29:57.191+00:00"
}
]
}, - "media_attachments": [ ],
- "mentions": [ ],
- "tags": [ ],
- "emojis": [ ],
- "card": {
- "title": "‘I lost my £193,000 inheritance – with one wrong digit on my sort code’",
- "description": "When Peter Teich’s money went to another Barclays customer, the bank offered £25 as a token gesture",
- "type": "link",
- "author_name": "",
- "author_url": "",
- "provider_name": "",
- "provider_url": "",
- "html": "",
- "width": 0,
- "height": 0,
- "image": null,
- "embed_url": ""
}, - "poll": null
}
]
View statuses in the given list timeline.
Version history:
2.1.0 - added
2.6.0 - add min_id
3.3.0 - both min_id
and max_id
can be used at the same time now
list_id required | string list_id parameter |
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
View public statuses.
Version history:
0.0.0 - added
2.3.0 - added only_media
2.6.0 - add min_id
3.0.0 - auth is required if public preview is disabled
3.1.4 - added remote
3.3.0 - both min_id
and max_id
can be used at the same time now
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
local | boolean Default: false Show only local statuses? Defaults to false. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
only_media | boolean Default: false Show only statuses with media attached? Defaults to false. |
remote | boolean Default: false Show only remote statuses? Defaults to false. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
View public statuses containing the given hashtag.
Version history:
0.0.0 - added
2.3.0 - added only_media
2.6.0 - add min_id
2.7.0 - add any[]
, all[]
, none[]
for additional tags
3.0.0 - auth is required if public preview is disabled
3.3.0 - both min_id
and max_id
can be used at the same time now. add remote
hashtag required | string hashtag parameter |
all | Array of strings Return statuses that contain all of these additional tags. |
any | Array of strings Return statuses that contain any of these additional tags. |
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
local | boolean Default: false Return only local statuses? Defaults to false. |
max_id | string All results returned will be lesser than this ID. In effect, sets an upper bound on results. |
min_id | string Returns results immediately newer than this ID. In effect, sets a cursor at this ID and paginates forward. |
none | Array of strings Return statuses that contain none of these additional tags. |
only_media | boolean Default: false Return only statuses with media attachments? Defaults to false. |
remote | boolean Default: false Return only remote statuses? Defaults to false. |
since_id | string All results returned will be greater than this ID. In effect, sets a lower bound on results. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Links that have been shared more than others.
Version history:
3.5.0 - added
limit | integer Default: 10 Maximum number of results to return. Defaults to 10 links. Max 20 links. |
offset | integer Skip the first n results. |
[- {
- "title": "Plan Your Vote: 2022 Elections",
- "description": "Everything you need to know about the voting rules where you live, including registration, mail-in voting, changes since 2020, and more.",
- "type": "link",
- "author_name": "NBC News",
- "author_url": "",
- "provider_name": "NBC News",
- "provider_url": "",
- "html": "",
- "width": 400,
- "height": 225,
- "embed_url": "",
- "blurhash": "UcQmF#ay~qofj[WBj[j[~qof9Fayofofayay",
- "history": [
- {
- "day": "1661817600",
- "accounts": "7",
- "uses": "7"
}, - {
- "day": "1661731200",
- "accounts": "23",
- "uses": "23"
}, - {
- "day": "1661644800",
- "accounts": "0",
- "uses": "0"
}, - {
- "day": "1661558400",
- "accounts": "0",
- "uses": "0"
}, - {
- "day": "1661472000",
- "accounts": "0",
- "uses": "0"
}, - {
- "day": "1661385600",
- "accounts": "0",
- "uses": "0"
}, - {
- "day": "1661299200",
- "accounts": "0",
- "uses": "0"
}
]
}
]
Statuses that have been interacted with more than others.
Version history:
3.5.0 - added
limit | integer Default: 20 Maximum number of results to return. Defaults to 20 statuses. Max 40 statuses. |
offset | integer Skip the first n results. |
[- {
- "id": "108880211901672326",
- "created_at": "2022-08-24T22:29:46.493Z",
- "in_reply_to_id": "108880209317577809",
- "in_reply_to_account_id": "103641",
- "sensitive": false
}
]
Tags that are being used more frequently within the past week.
Version history:
3.0.0 - added
3.5.0 - method signature changed from GET /api/v1/trends
to GET /api/v1/trends/tags
. The former is a deprecated alias that may be removed in the future.
limit | integer Default: 10 Maximum number of results to return. Defaults to 10 tags. Max 20 tags. |
offset | integer Skip the first n results. |
[- {
- "id": "4325",
- "name": "nowplaying",
- "history": [
- {
- "day": "1574553600",
- "uses": "200",
- "accounts": "31"
}, - {
- "day": "1574467200",
- "uses": "272",
- "accounts": "39"
}, - {
- "day": "1574380800",
- "uses": "345",
- "accounts": "40"
}, - {
- "day": "1574294400",
- "uses": "366",
- "accounts": "46"
}, - {
- "day": "1574208000",
- "uses": "226",
- "accounts": "32"
}, - {
- "day": "1574121600",
- "uses": "217",
- "accounts": "42"
}, - {
- "day": "1574035200",
- "uses": "214",
- "accounts": "34"
}
]
}, - {
- "id": "1684",
- "name": "mastothemes",
- "history": [
- {
- "day": "1574553600",
- "uses": "0",
- "accounts": "0"
}, - {
- "day": "1574467200",
- "uses": "0",
- "accounts": "0"
}, - {
- "day": "1574380800",
- "uses": "0",
- "accounts": "0"
}, - {
- "day": "1574294400",
- "uses": "0",
- "accounts": "0"
}, - {
- "day": "1574208000",
- "uses": "0",
- "accounts": "0"
}, - {
- "day": "1574121600",
- "uses": "0",
- "accounts": "0"
}, - {
- "day": "1574035200",
- "uses": "0",
- "accounts": "0"
}
]
}
]
Returns the OAuth 2 Authorization Server Metadata for the Mastodon server, as defined by RFC 8414.
Version history:
4.3.0 - added
4.4.0 - added userinfo_endpoint
{- "scopes_supported": [
- "read",
- "write",
- "write:accounts",
- "write:blocks",
- "write:bookmarks",
- "write:conversations",
- "write:favourites",
- "write:filters",
- "write:follows",
- "write:lists",
- "write:media",
- "write:mutes",
- "write:notifications",
- "write:reports",
- "write:statuses",
- "read:accounts",
- "read:blocks",
- "read:bookmarks",
- "read:favourites",
- "read:filters",
- "read:follows",
- "read:lists",
- "read:mutes",
- "read:notifications",
- "read:search",
- "read:statuses",
- "follow",
- "push",
- "profile",
- "admin:read",
- "admin:read:accounts",
- "admin:read:reports",
- "admin:read:domain_allows",
- "admin:read:domain_blocks",
- "admin:read:ip_blocks",
- "admin:read:email_domain_blocks",
- "admin:read:canonical_email_blocks",
- "admin:write",
- "admin:write:accounts",
- "admin:write:reports",
- "admin:write:domain_allows",
- "admin:write:domain_blocks",
- "admin:write:ip_blocks",
- "admin:write:email_domain_blocks",
- "admin:write:canonical_email_blocks"
], - "response_types_supported": [
- "code"
], - "response_modes_supported": [
- "query",
- "fragment",
- "form_post"
], - "code_challenge_methods_supported": [
- "S256"
], - "grant_types_supported": [
- "authorization_code",
- "client_credentials"
], - "token_endpoint_auth_methods_supported": [
- "client_secret_basic",
- "client_secret_post"
]
}