test content
", // ... "application": { "name": "test app", "website": null }, // ... } ``` If scheduled_at is provided, then a ScheduledStatus will be returned instead: ```json { "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": [] } ``` ##### 401: Unauthorized Invalid or missing Authorization header. ```json { "error": "The access token is invalid" } ``` ##### 422: Unprocessable entity ```json { "error": "Validation failed: Text can't be blank" } ``` --- ## View a single status {#get} ```http GET /api/v1/statuses/:id HTTP/1.1 ``` Obtain information about a status. **Returns:** [Status]({{< relref "entities/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 :id : {{Hello world
", "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": "Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.
", "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": "https://www.patreon.com/mastodon", "verified_at": null }, { "name": "Homepage", "value": "https://zeonfederated.com", "verified_at": "2019-07-15T18:29:57.191+00:00" } ] }, "media_attachments": [], "mentions": [], "tags": [], "emojis": [], "card": null, "poll": null } ``` ##### 401: Unauthorized Instance is in authorized-fetch mode. ```json { "error": "This API requires an authenticated user" } ``` ##### 404: Not found Status does not exist or is private. ```json { "error": "Record not found" } ``` --- ## View multiple statuses {#index} ```http GET /api/v1/statuses HTTP/1.1 ``` Obtain information about multiple statuses. **Returns:** Array of [Status]({{< relref "entities/status" >}})\ **OAuth:** Public for public statuses, user token + `read:statuses` for private statuses\ **Version history:**\ 4.3.0 - added #### Request ##### Query parameters id[] : Array of String. The IDs of the Statuses in the database. ##### Headers Authorization : Provide this header with `BearerHello world
", "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": "Developer of Mastodon and administrator of mastodon.social. I post service announcements, development updates, and personal stuff.
", "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": "https://www.patreon.com/mastodon", "verified_at": null }, { "name": "Homepage", "value": "https://zeonfederated.com", "verified_at": "2019-07-15T18:29:57.191+00:00" } ] }, "media_attachments": [], "mentions": [], "tags": [], "emojis": [], "card": null, "poll": null } ] ``` ##### 401: Unauthorized Instance is in authorized-fetch mode. ```json { "error": "This API requires an authenticated user" } ``` --- ## Delete a status {#delete} ```http DELETE /api/v1/statuses/:id HTTP/1.1 ``` Delete one of your own statuses. **Returns:** [Status]({{< relref "entities/status" >}}) with source `text` and `poll` or `media_attachments`\ **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 :id : {{Hello world
", "spoiler_text": "Greatings ahead", "media_attachments": [ { "id": 22345792, "description": "Status author waving at the camera" } ], "poll": null, "detected_source_language": "es", "provider": "DeepL.com" } ``` Translating a status with poll into English ```json { "content": "Should I stay or should I go?
", "spoiler_text": null, "media_attachments": [], "poll": [ { "id": 34858, "options": [ { "title": "Stay" }, { "title": "Go" } ] } ], "detected_source_language": "ja", "provider": "DeepL.com" } ``` ##### 404: Not found Status is private or does not exist ```json { "error": "Record not found" } ``` ##### 503: Service unavailable The translation request failed ```json { "error": "Service Unavailable" } ``` --- ## See who boosted a status {#reblogged_by} ```http GET /api/v1/statuses/:id/reblogged_by HTTP/1.1 ``` View who boosted a given status. **Returns:** Array of [Account]({{< relref "entities/account" >}})\ **OAuth:** Public for public statuses. User token + `read:statuses` for private statuses. **Version history:**\ 0.0.0 - added #### Request ##### Path parameters :id : {{this is a status that has been edited multiple times to change the text, add a poll, and change poll options.
", "filtered": [], "reblog": null, "application": { "name": "SubwayTooter", "website": null }, "account": { "id": "14715", "username": "trwnh", "acct": "trwnh", "display_name": "infinite love ⴳ", // ... }, "media_attachments": [], "mentions": [], "tags": [], "emojis": [], "card": null, "poll": null } ``` ##### 401: Unauthorized Invalid or missing Authorization header. ```json { "error": "The access token is invalid" } ``` ##### 404: Not found Status does not exist, is private, or is not owned by you. ```json { "error": "Record not found" } ``` ##### 422: Unprocessable entity ```json { "error": "Validation failed: Text can't be blank" } ``` --- ## View edit history of a status {#history} ```http GET /api/v1/statuses/:id/history HTTP/1.1 ``` Get all known versions of a status, including the initial and current states. **Returns:** Array of [StatusEdit]({{< relref "entities/statusedit" >}})\ **OAuth:** Public for public statuses, user token + `read:statuses` for private statuses\ **Version history:**\ 3.5.0 - added #### Request ##### Path parameters :id : {{this is a status that will be edited
", "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": "this is a status that has been edited
", "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": "this is a status that has been edited twice
", "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": "this is a status that has been edited three times. this time a poll has been added.
", "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": "this is a status that has been edited three times. this time a poll has been added.
", "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": [] } ] ``` ##### 404: Not found Status does not exist or is private. ```json { "error": "Record not found" } ``` --- ## View status source {#source} ```http GET /api/v1/statuses/:id/source HTTP/1.1 ``` Obtain the source properties for a status so that it can be edited. **Returns:** [StatusSource]({{< relref "entities/statussource" >}})\ **OAuth:** App token + `read:statuses`\ **Version history:**\ 3.5.0 - added #### Request ##### Path parameters :id : {{