statuses

Publish, interact, and view information about statuses.

Publish new status

POST https://mastodon.example/api/v1/statuses

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

Headers

Name
Type
Description

Idempotency-Key

string

Prevent duplicate submissions of the same status. Idempotency keys are stored for up to 1 hour, and can be any arbitrary string. Consider using a hash or UUID generated client-side.

Authorization

string

Bearer <user token>

Request Body

Name
Type
Description

status

string

Text content of the status. If media_ids is provided, this becomes optional. Attaching a poll is optional while status is provided.

media_ids[]

array

Array of Attachment ids to be attached as media. If provided, status becomes optional, and poll cannot be used.

poll[options][]

array

Array of possible answers. If provided, media_ids cannot be used, and poll[expires_in] must be provided.

poll[expires_in]

number

Duration the poll should be open, in seconds. If provided, media_ids cannot be used, and poll[options] must be provided.

poll[multiple]

boolean

Allow multiple choices?

poll[hide_totals]

boolean

Hide vote counts until the poll ends?

in_reply_to_id

string

ID of the status being replied to, if status is a reply

sensitive

boolean

Mark status and attached media as sensitive?

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

Visibility of the posted status. Enumerable oneOf public, unlisted, private, direct.

scheduled_at

string

ISO 8601 Datetime at which to schedule a status. Providing this paramter will cause ScheduledStatus to be returned instead of Status. Must be at least 5 minutes in the future.

language

string

ISO 639 language code for this status.

{
  "id": "103254962155278888",
  "created_at": "2019-12-05T11:34:47.196Z",
  ...
  "content": "<p>test content</p>",
  ...
  "application": {
    "name": "test app",
    "website": null
  },
  ...
}

View specific status

GET https://mastodon.example/api/v1/statuses/:id

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

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "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
}

Delete status

DELETE https://mastodon.example/api/v1/statuses/:id

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

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database. Must be owned by authenticated account.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "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
}

Parent and child statuses

GET https://mastodon.example/api/v1/statuses/:id/context

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

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "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",
      ...
    }
  ]
}

Boosted by

GET https://mastodon.example/api/v1/statuses/:id/reblogged_by

View who boosted a given status. Returns: Array of Account OAuth: Public Version history: 0.0.0 - added

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

[
  {
    "id": "711345",
    "username": "Norman_Doors",
    "acct": "Norman_Doors@witches.live",
    ...
  },
  ...
]

Favourited by

GET https://mastodon.example/api/v1/statuses/:id/favourited_by

View who favourited a given status. Returns: Array of Account OAuth: Public Version history: 0.0.0 - added

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

[
  {
    "id": "828600",
    "username": "fructose_dealer",
    "acct": "fructose_dealer@radical.town",
    ...
  },
  ...
]

Favourite

POST https://mastodon.example/api/v1/statuses/:id/favourite

Add a status to your favourites list. Returns: Status OAuth: User token + write:favourites Version history: 0.0.0 - added

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": true,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

Undo favourite

POST https://mastodon.example/api/v1/statuses/:id/unfavourite

Remove a status from your favourites list. Returns: Status OAuth: User token + write:favourites Version history: 0.0.0 - added

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

Boost

POST https://mastodon.example/api/v1/statuses/:id/reblog

Reshare a status. Returns: Status OAuth: User token + write:statuses Version history: 0.0.0 - added 2.8.0 - add visibility parameter

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

Request Body

Name
Type
Description

visibility

string

any visibility except limited or direct (i.e. public, unlisted, private). Defaults to public. Currently unused in UI.

{
  "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,
    ...
  },
  ...
}

Undo boost

POST https://mastodon.example/api/v1/statuses/:id/unreblog

Undo a reshare of a status. Returns: Status OAuth: User token + write:statuses Version history: 0.0.0 - added

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

Bookmark

POST https://mastodon.example/api/v1/statuses/:id/bookmark

Privately bookmark a status. Returns: Status OAuth: User token + write:bookmarks Version history: 3.1.0 - added

Path Parameters

Name
Type
Description

:id

string

ID of the status in the database

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": true,
  "pinned": false,
  ...
}

Undo bookmark

POST https://mastodon.example/api/v1/statuses/:id/unbookmark

Remove a status from your private bookmarks. Returns: Status OAuth: User token + write:bookmarks Version history: 3.1.0 - added

Path Parameters

Name
Type
Description

id

string

ID of the status in the database

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

Mute conversation

POST https://mastodon.example/api/v1/statuses/:id/mute

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

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": true,
  "bookmarked": false,
  "pinned": false,
  ...
}

Unmute conversation

POST https://mastodon.example/api/v1/statuses/:id/unmute

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

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "id": "99734435964706331",
  "created_at": "2018-03-23T17:38:40.700Z",
  ...
  "favourited": false,
  "reblogged": false,
  "muted": false,
  "bookmarked": false,
  "pinned": false,
  ...
}

Pin to profile

POST https://mastodon.example/api/v1/statuses/:id/pin

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

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database. The status should be public and authored by the authorized account.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "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",
    ...
  },
  ...
}

Unpin to profile

POST https://mastodon.example/api/v1/statuses/:id/unpin

Unfeature a status from the top of your profile. Returns: Status OAuth: User token + write:accounts Version history: 1.6.0 - added

Path Parameters

Name
Type
Description

:id

string

Local ID of a status in the database.

Headers

Name
Type
Description

Authorization

string

Bearer <user token>

{
  "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",
    ...
  },
  ...
}

Deprecated methods

Preview card

GET https://mastodon.example/api/v1/statuses/:id/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

Path Parameters

Name
Type
Description

:id

string

ID of the status in the database

{
  "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": ""
}

Last updated

Was this helpful?