--- title: ScheduledStatus description: Represents a status that will be published at a future scheduled date. menu: docs: parent: entities aliases: [ "/entities/scheduledstatus", "/entities/ScheduledStatus", "/api/entities/scheduledstatus", "/api/entities/ScheduledStatus", ] --- ## Example Returned from `POST /api/v1/statuses?status=test post&scheduled_at=2022-09-29` ```json { "id": "1", "scheduled_at": "2022-09-29T00:00:00.000Z", "params": { "text": "test post", "media_ids": null, "sensitive": null, "spoiler_text": null, "visibility": null, "language": null, "scheduled_at": null, "poll": null, "idempotency": null, "with_rate_limit": false, "in_reply_to_id": null, "application_id": 3 }, "media_attachments": [] } ``` Returned from `GET /api/v1/scheduled_statuses`: ```json { "id": "1", "scheduled_at": "2022-09-29T00:00:00.000Z", "params": { "poll": null, "text": "test post", "language": null, "media_ids": null, "sensitive": null, "visibility": null, "idempotency": null, "scheduled_at": null, "spoiler_text": null, "application_id": 3, "in_reply_to_id": null, "with_rate_limit": false }, "media_attachments": [] } ``` ## Attributes ### `id` {#id} **Description:** ID of the scheduled status in the database.\ **Type:** String (cast from an integer but not guaranteed to be a number)\ **Version history:**\ 2.7.0 - added ### `scheduled_at` {#scheduled_at} **Description:** The timestamp for when the status will be posted.\ **Type:** String (ISO 8601 Datetime)\ **Version history:**\ 2.7.0 - added ### `params` {#params} **Description:** The parameters that were used when scheduling the status, to be used when the status is posted.\ **Type:** Hash\ **Version history:**\ 2.7.0 - added #### `params[text]` {#params-text} **Description:** Text to be used as status content.\ **Type:** String\ **Version history:**\ 2.7.0 - added #### `params[poll]` {#params-poll} **Description:** Poll to be attached to the status.\ **Type:** {{}} Hash\ **Version history:**\ 2.8.0 - added ##### `params[poll][options[]]` {#params-poll-options} **Description:** The poll options to be used.\ **Type:** Array of String\ **Version history:**\ 2.8.0 - added ##### `params[poll][expires_in]` {#params-poll-expires_in} **Description:** How many seconds the poll should last before closing.\ **Type:** String (cast from integer)\ **Version history:**\ 2.8.0 - added ##### `params[poll][multiple]` {#params-poll-multiple} **Description:** Whether the poll allows multiple choices.\ **Type:** {{}} Boolean\ **Version history:**\ 2.8.0 - added ##### `params[poll][hide_totals]` {#params-poll-hide_totals} **Description:** Whether the poll should hide total votes until after voting has ended.\ **Type:** {{}} Boolean\ **Version history:**\ 2.8.0 - added #### `params[media_ids]` {#params-media_ids} **Description:** IDs of the MediaAttachments that will be attached to the status.\ **Type:** {{}} Array of String\ **Version history:**\ 2.7.0 - added #### `params[sensitive]` {#params-sensitive} **Description:** Whether the status will be marked as sensitive.\ **Type:** {{}} Boolean\ **Version history:**\ 2.7.0 - added #### `params[spoiler_text]` {#params-spoiler_text} **Description:** The text of the content warning or summary for the status.\ **Type:** {{}} String\ **Version history:**\ 2.7.0 - added #### `params[visibility]` {#params-visibility} **Description:** The visibility that the status will have once it is posted.\ **Type:** String (Enumerable oneOf)\ `public` = Visible to everyone, shown in public timelines.\ `unlisted` = Visible to public, but not included in public timelines.\ `private` = Visible to followers only, and to any mentioned users.\ `direct` = Visible only to mentioned users.\ **Version history:**\ 2.7.0 - added #### `params[in_reply_to_id]` {#params-in_reply_to_id} **Description:** ID of the Status that will be replied to.\ **Type:** {{}} Integer\ **Version history:**\ 2.7.0 - added #### `params[language]` {#params-language} **Description:** The language that will be used for the status.\ **Type:** {{}} String (ISO 639-1 two-letter language code)\ **Version history:**\ 2.7.0 - added #### `params[application_id]` {#params-application_id} **Description:** ID of the Application that posted the status.\ **Type:** Integer\ **Version history:**\ 2.7.0 - added #### `params[scheduled_at]` {#params-scheduled_at} **Description:** When the status will be scheduled. This will be null because the status is only scheduled once.\ **Type:** {{}} Null\ **Version history:**\ 2.7.0 - added #### `params[idempotency]` {#params-idempotency} **Description:** Idempotency key to prevent duplicate statuses.\ **Type:** {{}} String\ **Version history:**\ 2.7.0 - added #### `params[with_rate_limit]` {#params-with_rate_limit} **Description:** Whether the status should be rate limited .\ **Type:** Boolean\ **Version history:**\ 2.7.0 - added ### `media_attachments` {#media_attachments} **Description:** Media that will be attached when the status is posted.\ **Type:** Array of [MediaAttachment]({{< relref "entities/MediaAttachment" >}})\ **Version history:**\ 2.7.0 - added ## See also {{< page-relref ref="methods/statuses#create" caption="POST /api/v1/statuses (with `scheduled_at` parameter)" >}} {{< page-relref ref="methods/scheduled_statuses" caption="scheduled_statuses API methods" >}} {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/scheduled_status_serializer.rb" caption="app/serializers/rest/scheduled_status_serializer.rb" >}}