statuses
Publish, interact, and view information about statuses.
postPublish new status
Post a new status.
Returns: Status. When scheduled_at
is present, ScheduledStatus is returned instead.
OAuth: User + write:statuses
Version history:
0.0.0 - added
2.7.0 - scheduled_at
added
2.8.0 - poll
added
Request
Headers
string
string
Form Data Parameters
string
media_ids
is provided, this becomes optional. Attaching a poll
is optional while status
is provided.array
status
becomes optional, and poll
cannot be used.array
media_ids
cannot be used, and poll[expires_in]
must be provided.number
media_ids
cannot be used, and poll[options]
must be provided.boolean
boolean
string
boolean
string
string
string
string
Response
200: Success
Status will be posted with chosen parameters. If scheduled_at is provided, then a ScheduledStatus will be returned instead.
status
{
"id": "103254962155278888",
"created_at": "2019-12-05T11:34:47.196Z",
...
"content": "<p>test content</p>",
...
"application": {
"name": "test app",
"website": null
},
...
}
scheduled_at ScheduledStatus
{
"id": "3221",
"scheduled_at": "2019-12-05T12:33:01.000Z",
"params": {
"text": "test content",
"media_ids": null,
"sensitive": null,
"spoiler_text": null,
"visibility": null,
"scheduled_at": null,
"poll": null,
"idempotency": null,
"in_reply_to_id": null,
"application_id": 596551
},
"media_attachments": []
}
getView specific status
View information about a status.
Returns: Status
OAuth: Public for public statuses, user token + read:statuses
for private statuses
Version history:
0.0.0 - added
2.7.0 - public statuses no longer require token
Request
Path Parameters
string
Headers
string
Response
200: Success
{
"id": "1",
"created_at": "2016-03-16T14:44:31.580Z",
"in_reply_to_id": null,
"in_reply_to_account_id": null,
"sensitive": false,
"spoiler_text": "",
"visibility": "public",
"language": "en",
"uri": "https://mastodon.social/users/Gargron/statuses/1",
"url": "https://mastodon.social/@Gargron/1",
"replies_count": 7,
"reblogs_count": 98,
"favourites_count": 112,
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"content": "<p>Hello world</p>",
"reblog": null,
"application": null,
"account": {
"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>",
"url": "https://mastodon.social/@Gargron",
"avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg",
"avatar_static": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg",
"header": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png",
"header_static": "https://files.mastodon.social/accounts/headers/000/000/001/original/c91b871f294ea63e.png",
"followers_count": 320472,
"following_count": 453,
"statuses_count": 61163,
"last_status_at": "2019-12-05T03:03:02.595Z",
"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"
}
]
},
"media_attachments": [],
"mentions": [],
"tags": [],
"emojis": [],
"card": null,
"poll": null
}
401: Unauthorized
instance is in whitelist mode
{
"error": "This API requires an authenticated user"
}
404: Not Found
Status does not exist, is deleted, or is private.
{
"error": "Record not found"
}
deleteDelete status
Delete one of your own statuses.
Returns: Status with source text
and media_attachments
or poll
OAuth: User token + write:statuses
Version history:
0.0.0 - added
2.9.0 - return source properties, for use with delete and redraft
Request
Path Parameters
string
Headers
string
Response
200: Success
Note the special properties text
and media_attachments
or poll
which may be used to repost the status, e.g. in case of delete-and-redraft functionality. With POST /api/v1/statuses, use text
as the value for status
parameter, media_attachments[n]["id"]
for the media_ids
array parameter, and poll
properties with the corresponding parameters (e.g. poll[multiple]
and poll[options]
, with a new poll[expires_in]
and poll[hide_totals]
per user input.
with media
{
"id": "103254193998341330",
"created_at": "2019-12-05T08:19:26.052Z",
"in_reply_to_id": null,
"in_reply_to_account_id": null,
"sensitive": false,
"spoiler_text": "",
"visibility": "public",
"language": "en",
"uri": "https://mastodon.social/users/trwnh/statuses/103254193998341330",
"url": "https://mastodon.social/@trwnh/103254193998341330",
"replies_count": 0,
"reblogs_count": 0,
"favourites_count": 0,
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
"text": "test",
"reblog": null,
"application": {
"name": "Web",
"website": null
},
"account": {
"id": "14715",
"username": "trwnh",
"acct": "trwnh",
"display_name": "infinite love ⴳ",
...
},
"media_attachments": [
{
"id": "22345792",
"type": "image",
"url": "https://files.mastodon.social/media_attachments/files/022/345/792/original/57859aede991da25.jpeg",
"preview_url": "https://files.mastodon.social/media_attachments/files/022/345/792/small/57859aede991da25.jpeg",
"remote_url": null,
"text_url": "https://mastodon.social/media/2N4uvkuUtPVrkZGysms",
"meta": {
"original": {
"width": 640,
"height": 480,
"size": "640x480",
"aspect": 1.3333333333333333
},
"small": {
"width": 461,
"height": 346,
"size": "461x346",
"aspect": 1.3323699421965318
},
"focus": {
"x": -0.27,
"y": 0.51
}
},
"description": "test media description",
"blurhash": "UFBWY:8_0Jxv4mx]t8t64.%M-:IUWGWAt6M}"
}
],
"mentions": [],
"tags": [],
"emojis": [],
"card": null,
"poll": null
}
with poll
{
"id": "103254222827484720",
"created_at": "2019-12-05T08:26:45.958Z",
"in_reply_to_id": null,
"in_reply_to_account_id": null,
"sensitive": false,
"spoiler_text": "",
"visibility": "public",
"language": "en",
"uri": "https://mastodon.social/users/trwnh/statuses/103254222827484720",
"url": "https://mastodon.social/@trwnh/103254222827484720",
"replies_count": 0,
"reblogs_count": 0,
"favourites_count": 0,
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
"text": "test",
"reblog": null,
"application": {
"name": "Web",
"website": null
},
"account": {
"id": "14715",
"username": "trwnh",
"acct": "trwnh",
"display_name": "infinite love ⴳ",
...
},
"media_attachments": [],
"mentions": [],
"tags": [],
"emojis": [],
"card": null,
"poll": {
"id": "34858",
"expires_at": "2019-12-06T08:26:45.945Z",
"expired": false,
"multiple": false,
"votes_count": 1,
"voters_count": 1,
"voted": true,
"own_votes": [],
"options": [
{
"title": "test 1",
"votes_count": 1
},
{
"title": "test 2",
"votes_count": 0
}
],
"emojis": []
}
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
Status already deleted, does not exist, or is not owned by you
{
"error": "Record not found"
}
getParent and child statuses
View statuses above and below this status in the thread.
Returns: Context
OAuth: Public for public statuses. User token + read:statuses
for private statuses.
Version history:
0.0.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
{
"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",
...
}
]
}
404: Not Found
Status does not exist, is deleted, or is private
{
"error": "Record not found"
}
getBoosted by
View who boosted a given status.
Returns: Array of Account
OAuth: Public
Version history:
0.0.0 - added
Request
Path Parameters
string
Response
200: Success
[
{
"id": "711345",
"username": "Norman_Doors",
"acct": "Norman_Doors@witches.live",
...
},
...
]
404: Not Found
Status does not exist, is deleted, or is private.
{
"error": "Record not found"
}
getFavourited by
View who favourited a given status.
Returns: Array of Account
OAuth: Public
Version history:
0.0.0 - added
Request
Path Parameters
string
Response
200: Success
[
{
"id": "828600",
"username": "fructose_dealer",
"acct": "fructose_dealer@radical.town",
...
},
...
]
404: Not Found
Status does not exist, is deleted, or is private
{
"error": "Record not found"
}
postFavourite
Add a status to your favourites list.
Returns: Status
OAuth: User token + write:favourites
Version history:
0.0.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status favourited or was already favourited
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": true,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
...
}
401: Unauthorized
{
"error": "The access token is invalid"
}
404: Not Found
Status does not exist, is deleted, or is private
{
"error": "Record not found"
}
postUndo favourite
Remove a status from your favourites list.
Returns: Status
OAuth: User token + write:favourites
Version history:
0.0.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status unfavourited or was already not favourited
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
Status does not exist, is deleted, or is private
{
"error": "Record not found"
}
postBoost
Reshare a status.
Returns: Status
OAuth: User token + write:statuses
Version history:
0.0.0 - added
2.8.0 - add visibility
parameter
Request
Path Parameters
string
Headers
string
Form Data Parameters
string
Response
200: Success
Status has been reblogged. Note that the top-level id has changed. The id of the boosted status is now inside the reblog
property. The top-level id is the id of the reblog itself. Also note that reblogs cannot be pinned.
{
"id": "103254401326800919",
"created_at": "2019-12-05T09:12:09.625Z",
...
"favourited": false,
"reblogged": true,
"muted": false,
"bookmarked": false,
...
"reblog": {
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": true,
"muted": false,
"bookmarked": false,
"pinned": false,
...
},
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
Status does not exist, is deleted, or is private
{
"error": "Record not found"
}
postUndo boost
Undo a reshare of a status.
Returns: Status
OAuth: User token + write:statuses
Version history:
0.0.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status no longer reblogged
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
...
}
401: Unauthorized
Invalid or missing authorization header
{
"error": "The access token is invalid"
}
404: Not Found
Status deleted, does not exist, or no reblog exists
{
"error": "Record not found"
}
postBookmark
Privately bookmark a status.
Returns: Status
OAuth: User token + write:bookmarks
Version history:
3.1.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status bookmarked
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": true,
"pinned": false,
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
{
"error": "Record not found"
}
postUndo bookmark
Remove a status from your private bookmarks.
Returns: Status
OAuth: User token + write:bookmarks
Version history:
3.1.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
Status does not exist, is deleted, is private, or was already not bookmarked
{
"error": "Record not found"
}
postMute conversation
Do not receive notifications for the thread that this status is part of. Must be a thread in which you are a participant.
Returns: Status
OAuth: User token + write:mutes
Version history:
1.4.2 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status's conversation muted, or was already muted
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": true,
"bookmarked": false,
"pinned": false,
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
{
"error": "Record not found"
}
postUnmute conversation
Start receiving notifications again for the thread that this status is part of.
Returns: Status
OAuth: User token + write:mutes
Version history:
1.4.2 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status's conversation unmuted, or was already unmuted
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
{
"error": "Record not found"
}
postPin to profile
Feature one of your own public statuses at the top of your profile.
Returns: Status
OAuth: User token + write:accounts
Version history:
1.6.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status pinned. Note the status is not a reblog and its authoring account is your own.
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": true,
...
"reblog": null,
...
"account": {
"id": "14715",
"username": "trwnh",
"acct": "trwnh",
...
},
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
Status does not exist, is deleted, or you are not authorized to see it.
{
"error": "Record not found"
}
422: Unprocessable Entity
Status is not owned by you, or is not public. You cannot pin one of your private statuses because private statuses cannot be fetched from remote sites, and must be delivered.
Not yours
{
"error": "Validation failed: Someone else's toot cannot be pinned"
}
Private
{
"error": "Validation failed: Non-public toot cannot be pinned"
}
postUnpin to profile
Unfeature a status from the top of your profile.
Returns: Status
OAuth: User token + write:accounts
Version history:
1.6.0 - added
Request
Path Parameters
string
Headers
string
Response
200: Success
Status unpinned, or was already not pinned
{
"id": "99734435964706331",
"created_at": "2018-03-23T17:38:40.700Z",
...
"favourited": false,
"reblogged": false,
"muted": false,
"bookmarked": false,
"pinned": false,
...
"reblog": null,
...
"account": {
"id": "14715",
"username": "trwnh",
"acct": "trwnh",
...
},
...
}
401: Unauthorized
Invalid or missing Authorization header
{
"error": "The access token is invalid"
}
404: Not Found
Status does not exist, is deleted, or is private
{
"error": "Record not found"
}
Deprecated methods
getPreview card
Returns: Card
OAuth: Public
Version history:
0.0.0 - added
2.6.0 - deprecated in favor of card property inlined on Status entity
3.0.0 - removed
Request
Path Parameters
string
Response
200: Success
{
"url": "https://www.youtube.com/watch?v=OMv_EPMED8Y",
"title": "♪ Brand New Friend (Christmas Song!)",
"description": "",
"type": "video",
"author_name": "YOGSCAST Lewis & Simon",
"author_url": "https://www.youtube.com/user/BlueXephos",
"provider_name": "YouTube",
"provider_url": "https://www.youtube.com/",
"html": "<iframe width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/OMv_EPMED8Y?feature=oembed\" frameborder=\"0\" allowfullscreen=\"\"></iframe>",
"width": 480,
"height": 270,
"image": "https://files.mastodon.social/preview_cards/images/014/179/145/original/9cf4b7cf5567b569.jpeg",
"embed_url": ""
}
404: Not Found
Status does not exist, is deleted, or is private
{
"error": "Record not found"
}
Last updated December 27, 2020 · Improve this page