Download OpenAPI specification:
Unofficial documentation for the Mastodon API. Generated with mastodon-openapi from 062ecdd.
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",
- "indexable": true,
- "roles": [ ],
- "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. Maximum of 10 domains. |
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]
4.4.0 - added client_secret_expires_at
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",
- "client_secret_expires_at": 0
}
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
{- "id": "563419",
- "name": "Test Application",
- "scopes": [
- "read",
- "write",
- "push"
], - "redirect_uri": "https://app.example/callback\nhttps://app.example/register",
- "vapid_key": "BMAIjoaMYTDbJtfrfocuzO8pzDHI47dzmw0rha6Y="
}
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"
}
]
}
Server activity over the last 3 months, binned weekly.
Version history:
2.1.2 - added
3.0.0 - requires user token if server 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.1.0 - added configuration.urls.status
4.2.0 - added registrations.url
4.3.0 - added configuration.vapid.public_key
, api_versions
, configuration.accounts.max_pinned_statuses
, icon
4.4.0 - added configuration.urls.about
, configuration.urls.privacy_policy
, configuration.urls.terms_of_service
, registrations.min_age
, registrations.reason_required
, configuration.limited_federation
{- "domain": "mastodon.social",
- "title": "Mastodon",
- "version": "4.5.0-nightly.2025-07-11",
- "description": "The original server operated by the Mastodon gGmbH non-profit",
- "usage": {
- "users": {
- "active_month": 279347
}
}, - "thumbnail": {
- "blurhash": "UeKUpFxuo~R%0nW;WCnhF6RjaJt757oJodS$",
}, - "icon": [
- {
- "size": "144x144"
}, - {
- "size": "192x192"
}, - {
- "size": "256x256"
}, - {
- "size": "384x384"
}, - {
- "size": "512x512"
}
], - "languages": [
- "en"
], - "configuration": {
- "urls": {
- "streaming": "wss://streaming.mastodon.social",
- "terms_of_service": null
}, - "vapid": {
- "public_key": "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M="
}, - "accounts": {
- "max_featured_tags": 10,
- "max_pinned_statuses": 5
}, - "statuses": {
- "max_characters": 500,
- "max_media_attachments": 4,
- "characters_reserved_per_url": 23
}, - "media_attachments": {
- "description_limit": 1500,
- "image_matrix_limit": 33177600,
- "image_size_limit": 16777216,
- "supported_mime_types": [
- "image/jpeg",
- "image/png",
- "image/gif",
- "image/heic",
- "image/heif",
- "image/webp",
- "image/avif",
- "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"
], - "video_frame_rate_limit": 120,
- "video_matrix_limit": 8294400,
- "video_size_limit": 103809024
}, - "polls": {
- "max_options": 4,
- "max_characters_per_option": 50,
- "min_expiration": 300,
- "max_expiration": 2629746
}, - "translation": {
- "enabled": true
}, - "limited_federation": false
}, - "registrations": {
- "enabled": true,
- "approval_required": false,
- "reason_required": false,
- "message": null,
- "min_age": 16,
- "url": null
}, - "api_versions": {
- "mastodon": 6
}, - "contact": {
- "email": "staff@mastodon.social",
- "account": {
- "id": "13179",
- "username": "Mastodon",
- "acct": "Mastodon",
- "display_name": "Mastodon",
- "locked": false,
- "bot": false,
- "discoverable": true,
- "indexable": false,
- "group": false,
- "created_at": "2016-11-23T00:00:00.000Z",
- "note": "<p>Free, open-source decentralized social media platform.</p>",
- "followers_count": 843930,
- "following_count": 34,
- "statuses_count": 344,
- "last_status_at": "2025-07-10",
- "hide_collections": false,
- "noindex": false,
- "emojis": [ ],
- "roles": [ ],
- "fields": [
- {
- "name": "Homepage",
- "value": "<a href=\"https://joinmastodon.org\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">joinmastodon.org</span><span class=\"invisible\"></span></a>",
- "verified_at": "2018-10-31T04:11:00.076+00:00"
}, - {
- "name": "Patreon",
- "value": "<a href=\"https://patreon.com/mastodon\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">patreon.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": null
}, - {
- "name": "GitHub",
- "value": "<a href=\"https://github.com/mastodon\" target=\"_blank\" rel=\"nofollow noopener me\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">github.com/mastodon</span><span class=\"invisible\"></span></a>",
- "verified_at": "2023-07-21T13:27:45.996+00:00"
}
]
}
}, - "rules": [
- {
- "id": "1",
- "text": "Sexually explicit or violent media must be marked as sensitive or with a content warning",
- "hint": "This includes content that is particularly provocative even if it may not show specific body parts, as well as dead bodies, bloody injuries, and other gore. Particularly obscene content may be prohibited entirely. Profile pictures and header images may not contain sexually explicit or violent media.",
- "translations": {
- "de": {
- "text": "Sexuell explizite Darstellungen oder solche von Gewalt müssen mit einer Inhaltswarnung versehen werden.",
- "hint": "Das beinhaltet ausdrücklich provokative Inhalte, auch wenn keine bestimmten Körperteile zu sehen sind, sowie Leichname, blutige Verletzungen und vergleichbare extreme Darstellungen. Besonders obszöne Inhalte können vollständig verboten werden. Profil- und Titelbilder dürfen keine sexuell expliziten oder Gewaltdarstellungen abbilden."
}, - "es": {
- "text": "El contenido sexual explícito o violento debe marcarse como sensible o con una advertencia de contenido.",
- "hint": "Esto incluye contenido especialmente provocativo, aunque no muestre partes específicas del cuerpo, así como cadáveres, heridas sangrientas y otras escenas sangrientas. Los contenidos especialmente obscenos pueden prohibirse por completo. Las fotos de perfil y las imágenes de cabecera no pueden contener contenido sexual explícito o violento."
}, - "fr": {
- "text": "Le contenu érotique, pornographique ou violent doit être marqué comme sensible ou avoir un avertissement de contenu.",
- "hint": "Cela inclut le contenu particulièrement provocateur même s’il ne montre pas particulièrement de parties intimes, ainsi que les photos de cadavres, de blessures sanglantes et autres scènes dérangeantes. Le contenu particulièrement obscène peut être complètement interdit. Les images de profil et d’en-tête ne doivent pas contenir de contenu sexuellement explicite ou violent."
}, - "nl": {
- "text": "Seksueel expliciet of gewelddadig beeldmateriaal moet als ‘gevoelig’ gemarkeerd worden, of met een inhoudswaarschuwing gemarkeerd.",
- "hint": "Dit omvat ook inhoud die gedeeltelijk aanstootgevend is zelfs als het geen lichaamsdelen toont, en ook dode lichamen, bloederige verwondingen en andere gruwelijkheden. Zeer obscene inhoud kan helemaal verboden worden. Profielfoto’s en headerafbeeldingen mogen geen seksueel expliciete of geweldadige inhoud hebben."
}, - "ru": {
- "text": "Сексуально откровенные или жестокие изображения или видео должны быть помечены как чувствительные или скрыты под спойлер.",
- "hint": "Это включает в себя особенно провоцирующий контент, даже если он не показывает определённые части тела, а также мёртвые тела, окровавленные раны и прочую кровь. Особенно жестокий контент может быть запрещён полностью. Аватары и обложки профилей не должны содержать сексуально откровенные или жестокие изображения."
}, - "zh-CN": {
- "text": "色情或暴力媒体必须标记为敏感或有内容警告",
- "hint": "这包括特别挑逗性的内容,即使它可能没有显示特定的身体部位,以及尸体、血腥伤害和其他血腥内容。特别淫秽的内容可能会被完全禁止。个人资料图片和头像不得包含色情或暴力内容。"
}, - "zh-TW": {
- "text": "性暗示或暴力媒體必須標示為敏感或附帶內容警示",
- "hint": "這包括特別挑釁的內容,即使它可能沒有顯示特定的身體部位,以及屍體、血腥傷害和其他血腥內容。特別猥褻的內容可能會被完全禁止。個人檔案圖片和標題圖片不得包含色情或暴力媒體。"
}
}
}, - {
- "id": "2",
- "text": "No racism, sexism, homophobia, transphobia, ableism, xenophobia, or casteism.",
- "hint": "Transphobic behavior such as intentional misgendering and deadnaming is strictly prohibited. Promotion of \"conversion therapy\" is strictly prohibited. Criticism of governments and religions is permissible unless being used as a proxy for discrimination.",
- "translations": {
- "de": {
- "text": "Kein(e) Rassismus, Sexismus, Homophobie, Transphobie, Behindertenfeindlichkeit, Fremdenfeindlichkeit oder Kasteismus.",
- "hint": "Transphobes Verhalten wie die absichtliche Verwendung von falschen Anreden und Pronomen sowie Deadnaming ist strengstens verboten. Die Werbung für Konversionstherapien ist strengstens verboten. Die Kritik an Regierungen und Religionen ist zulässig, sofern sie nicht stellvertretend für Diskriminierung verwendet wird."
}, - "es": {
- "text": "Prohibido el racismo, sexismo, homofobia, transfobia, ableísmo, xenofobia o casticismo.",
- "hint": "Queda terminantemente prohibido el comportamiento transfóbico, como el uso intencionado de nombres falsos o el \"deadnaming\". La promoción de la \"terapia de conversión\" está estrictamente prohibida. Se permiten las críticas a gobiernos y religiones, a menos que se utilicen como excusa para la discriminación."
}, - "fr": {
- "text": "Pas de racisme, sexisme, homophobie, transphobie, validisme, xénophobie ou discrimination de caste.",
- "hint": "Les comportements intentionnellement transphobes, comme le mégenrage ou le morinommage (“deadnaming”) est strictement interdit. La promotion des “thérapies de conversion” est strictement interdite. La critique des gouvernements et religions est autorisée, sauf dans les cas ou elle est utilisée comme paravent pour de la discrimination."
}, - "nl": {
- "text": "Geen racisme, seksisme, homofobie, transfobie, validisme, xenofobie of kastendiscriminatie.",
- "hint": "Transfobisch gedrag zoals opzettelijk misgenderen en deadnaming is ten strengste verboden. Het promoten van “conversie therapie” is ten strengste verboden. Kritiek op overheden en religies is toegestaan tenzij het wordt gebruikt als proxy voor racisme."
}, - "ru": {
- "text": "Запрещается расизм, сексизм, гомофобия, трансфобия, эйблизм, ксенофобия и кастовость.",
- "hint": "Трансфобное поведение, такое как осознанный мисгендеринг и деднейминг, строго запрещено. Продвижение \"конверсионной терапии\" строго запрещено. Критика правительств и религий разрешена, кроме случаев, когда она используется как оправдание для дискриминации."
}, - "zh-CN": {
- "text": "禁止种族主义、性别歧视、仇视同性恋、仇视变性者、异能者、仇外心理或种姓歧视。",
- "hint": "严禁变性仇视行为,如故意误用性别和死名。严禁宣传 “转换疗法”。允许批评政府和宗教,除非被用作歧视的代名词。"
}, - "zh-TW": {
- "text": "禁止種族主義、性別主義、恐同主義、恐變性主義、能力主義、仇外主義或種性主義。",
- "hint": "嚴禁變性仇視行為,例如故意誤用性別和暱稱。嚴禁宣傳「扭轉治療」。允許批評政府和宗教,除非被用來代表歧視。"
}
}
}, - {
- "id": "3",
- "text": "No incitement of violence or promotion of violent ideologies",
- "hint": "Calling for people or groups to be assassinated, murdered, or attacked physically is strictly prohibited. Support for violent groups or events is prohibited.",
- "translations": {
- "de": {
- "text": "Keine Anstiftung zu Gewalt oder Förderung gewalttätiger Ideologien.",
- "hint": "Der Aufruf zum Mord oder körperlichen Attacken auf Personen oder Gruppen ist strengstens verboten. Die Unterstützung gewalttätiger Gruppen oder Veranstaltungen ist verboten."
}, - "es": {
- "text": "Prohibida la incitación a la violencia o la promoción de ideologías violentas.",
- "hint": "Está estrictamente prohibido hacer llamamientos para que se asesine, mate o agreda físicamente a personas o grupos. Está prohibido apoyar a grupos o acontecimientos violentos."
}, - "fr": {
- "text": "Pas d’incitation à la violence ou de promotion d’idéologies violentes.",
- "hint": "L’appel au meutre, à la violence ou à l’action physique envers des personnes ou des groupes de personnes est strictement interdit. Le soutien à des groupes ou évènements violents est interdit."
}, - "nl": {
- "text": "Niet aanzetten tot geweld of verspreiden van gewelddadige ideologieën.",
- "hint": "Mensen of groepen aanzetten tot moord, aanslagen of fysieke aanvallen is ten strengste verboden. Steun voor gewelddadige groeperingen of evenementen is verboden."
}, - "ru": {
- "text": "Запрещается подстрекательство к жестокости или продвижение жестоких идеологий.",
- "hint": "Призывы к покушениям, убийствам и физическим атакам на людей или группы людей строго запрещены. Поддержка жестоких сообществ или событий запрещена."
}, - "zh-CN": {
- "text": "不得煽动暴力或宣扬暴力意识形态",
- "hint": "严禁呼吁暗杀、谋杀或人身攻击他人或团体。禁止支持暴力团体或事件。"
}, - "zh-TW": {
- "text": "嚴禁煽動暴力或宣揚暴力意識形態",
- "hint": "嚴禁呼籲暗殺、謀殺或人身攻擊他人或團體。嚴禁支持暴力團體或事件。"
}
}
}, - {
- "id": "4",
- "text": "No harassment, block evasion, dogpiling, or doxxing of others",
- "hint": "Repeat attempts to communicate with users who have blocked you or creation of accounts solely to harass or insult individuals is strictly prohibited. Coordinated activity to attack other users is prohibited. Posting of private personal information about others is prohibited.",
- "translations": {
- "de": {
- "text": "Keine Belästigungen, Umgehung von Blockierungen, Dogpiling oder Doxxing.",
- "hint": "Wiederholte Kommunikationsversuche mit Profilen, die dich blockiert haben, oder die Erstellung neuer Konten, die ausschließlich dazu dienen, andere zu belästigen oder zu beleidigen, sind strengstens verboten. Koordinierte Angriffe auf andere Profile sind verboten. Die Veröffentlichung von privaten und persönlichen Informationen anderer ist verboten."
}, - "es": {
- "text": "No acosar, evadir bloqueos, \"dogpiling\" (abuso en línea por grupos de acosadores) o doxeo de otros.",
- "hint": "Está estrictamente prohibido intentar comunicarse repetidamente con usuarios que te hayan bloqueado o crear cuentas con el único fin de acosar o insultar a otras personas. Queda prohibida la actividad coordinada para atacar a otros usuarios. Está prohibido publicar información personal privada sobre otras personas."
}, - "fr": {
- "text": "Pas de harcèlement, d’esquive de blocage, de “dogpiling”, ou de divulgation de données personnelles d’autrui.",
- "hint": "Les tentatives répétées de communiquer avec des utilisateur·ices qui vont ont bloqué ainsi que la création de comptes pour harceler ou insulter autrui sont strictement interdites. Les attaques coordonnées contre autrui sont interdites. La publication de données personnelles d’autrui est interdite."
}, - "nl": {
- "text": "Geen intimidatie, omzeilen van blokkades, groepsaanvallen of het verspreiden van privégegevens van anderen.",
- "hint": "Herhaalde pogingen tot communiceren met gebruikers die je hebben geblokkeerd, of het maken van accounts enkel om personen te intimideren of beledigen is ten strengste verboden. Gecoördineerde activiteit om andere gebruikers aan te vallen is verboden. Het plaatsen van privé-gegevens van anderen is verboden."
}, - "ru": {
- "text": "Запрещается травля, избегание блокировок, набеги и разглашение личной информации других лиц.",
- "hint": "Повторяющиеся попытки взаимодействовать с пользователями, которые вас заблокировали, и создание учётных записей исключительно ради травли или оскорблений, строго запрещены. Скоординированная активность с целью атаки на других пользователей запрещена. Публикация личной информации других лиц запрещена."
}, - "zh-CN": {
- "text": "不得骚扰、回避封禁、诽谤或攻击他人",
- "hint": "严禁重复尝试与已封禁您的用户交流,或仅为骚扰或侮辱他人而创建账户。严禁协同攻击其他用户。禁止发布他人的私人个人信息。"
}, - "zh-TW": {
- "text": "嚴禁騷擾、迴避封鎖、煽動或誣衊他人",
- "hint": "嚴禁重複嘗試與已封鎖您的使用者溝通,或純粹為了騷擾或侮辱他人而建立帳號。禁止攻擊其他使用者的協調活動。禁止張貼他人的私人個人資訊。"
}
}
}, - {
- "id": "7",
- "text": "Do not share information widely-known to be false and misleading",
- "hint": "False and misleading information and links from low-quality sources may not be posted, especially if they are likely to mislead or confuse others or endanger their safety.",
- "translations": {
- "de": {
- "text": "Verbreitet keine Informationen, von denen allgemein bekannt ist, dass sie falsch oder irreführend.",
- "hint": "Falsche und irreführende Informationen sowie Links aus unseriösen Quellen dürfen nicht gepostet werden, insbesondere wenn sie geeignet sind, andere in die Irre zu führen oder deren Sicherheit zu gefährden."
}, - "es": {
- "text": "No compartas información ampliamente conocida por ser falsa y engañosa.",
- "hint": "No está permitido publicar información falsa y engañosa ni enlaces de fuentes de baja calidad, especialmente si pueden inducir a error o confusión a otras personas o poner en peligro su seguridad."
}, - "fr": {
- "text": "Ne partagez pas d’informations connues pour être fausses ou trompeuses.",
- "hint": "Les informations fausses ou trompeuses, ainsi que les liens vers des sources de mauvaise qualité ne doivent pas être publiées, particulièrement si elles risquent de tromper, d’induire en erreur, de semer la confusion ou de mettre des personnes en danger."
}, - "nl": {
- "text": "Deel geen informatie die algemeen bekend staat als onjuist en misleidend.",
- "hint": "Onjuiste en misleidende informatie en links naar onbetrouwbare bronnen mogen niet geplaatst worden, zeker als deze waarschijnlijk anderen misleiden of verwarren, of hun veiligheid in gevaar brengt."
}, - "ru": {
- "text": "Не публикуйте заведомо ложную и вводящую в заблуждение информацию.",
- "hint": "Запрещена публикация ложной и вводящей в заблуждение информации и ссылок из низкокачественных источников, особенно если это может сбить других людей с толку, запутать их, или подвергнуть их опасности."
}, - "zh-CN": {
- "text": "不得分享众所周知的虚假和误导性信息\r\n",
- "hint": "不得发布虚假和误导性信息以及来自低质量来源的链接,尤其是可能误导或混淆他人或危及他人安全的信息。"
}, - "zh-TW": {
- "text": "請勿分享廣為人知的虛假和誤導資訊",
- "hint": "不得張貼虛假和誤導資訊以及來自低品質來源的連結,尤其是可能誤導或混淆他人或危害他人安全的資訊。"
}
}
}, - {
- "id": "1008",
- "text": "Content created by others must be attributed, and use of generative AI must be disclosed",
- "hint": "Content created by others must clearly provide a reference to the author, creator, or source. For adult content, this should include performers. Accounts may not solely post AI-generated content.",
- "translations": {
- "de": {
- "text": "Von anderen erstellte Inhalte müssen gekennzeichnet und die Nutzung generativer KI offengelegt werden.",
- "hint": "Von anderen erstellte Inhalte müssen durch einen eindeutigen Verweis auf den/die Autor*in oder die Quelle gekennzeichnet werden. Bei nicht jugendfreien Inhalten sollte dies auch die Darsteller*innen einschließen. Konten dürfen nicht ausschließlich KI-generierte Inhalte posten."
}, - "es": {
- "text": "Los contenidos creados por terceros deben ser atribuidos y el uso de IA debe ser revelado.",
- "hint": "Los contenidos creados por terceros deben proporcionar claramente una referencia al autor, creador o fuente. En el caso de los contenidos para adultos, debe incluirse a los artistas. Las cuentas no pueden publicar únicamente contenidos generados por IA."
}, - "fr": {
- "text": "Le contenu crée par autrui doit être attribué, et l’utilisation d’IA générative doit être marqué comme tel.",
- "hint": "Le contenu créé par autrui doit fournir une référence explicite à son auteur·ice, créateur·ice ou sa source. Cela inclut les acteur·ice de contenu pour adulte. Les comptes publiant exclusivement du contenu généré par IA sont interdits."
}, - "nl": {
- "text": "Inhoud gemaakt door anderen moet worden toegeschreven, en het gebruik van generatieve AI moet worden aangegeven.",
- "hint": "Inhoud gemaakt door anderen moet een duidelijke referentie naar de auteur, maker of bron bevatten. Voor Content created by others must clearly provide a reference to the author, creator, or source. Voor inhoud voor volwassenen, moet het model worden vermeld. Accounts mogen niet uitsluitend door AI gegenereerde inhoud plaatsen."
}, - "ru": {
- "text": "Контент, созданный другими, должен публиковаться с указанием авторства, а использование генеративного ИИ должно быть раскрыто.",
- "hint": "Контент, созданный другими, должен явным образом сопровождаться отсылкой к автору, создателю или источнику. Для контента для взрослых это включает в себя актёров. Учётные записи не могут публиковать исключительно контент, сгенерированный с помощью ИИ."
}, - "zh-CN": {
- "text": "他人创建的内容必须注明出处,使用人工智能产生的内容必须公开和披露说明",
- "hint": "他人创建的内容必须明确注明作者、创建者或来源。对于成人内容,应包括表演者。账户不得仅发布人工智能生成的内容。"
}, - "zh-TW": {
- "text": "由他人創作的內容必須註明來源,使用人工智能產生的內容必須公開和披露說明",
- "hint": "他人創作的內容必須清楚提供作者、創作人或來源的參照。對於成人內容,這應該包括表演者。帳戶不得僅發佈人工智能產生的內容。"
}
}
}
]
}
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 (CategoryEnum) Default: "other" Enum: "legal" "other" "spam" "violation" 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": "legal",
- "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",
- "indexable": true,
- "roles": [ ],
- "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"
]
}