1
0
mirror of https://github.com/mastodon/documentation synced 2025-04-11 22:56:17 +02:00
documentation/content/en/entities/ScheduledStatus.md
Nik Clayton 49868155b9
feat: Document datetime and date formats (#1565)
Add a new document that precisely describes the string representation of
datetime and date types.

The previous description of them as "ISO 8601 Datetime" was very
imprecise, as ISO 8601 describes many different ways of representing a
datetime and date.

Specify the datetime format precisely as the ISO 8601 profile described
in RFC 3339, and the date format precisely as the "Complete date" format
from the W3C note on date and time formats.

Adjust all the references to ISO 8601 datetimes or dates to link back
to the definition.

Fixes #1420
2024-11-27 15:08:51 +00:00

221 lines
5.7 KiB
Markdown

---
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 ([Datetime](/api/datetime-format#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:** {{<nullable>}} 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:** {{<optional>}} 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:** {{<optional>}} 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:** {{<nullable>}} Array of String\
**Version history:**\
2.7.0 - added
#### `params[sensitive]` {#params-sensitive}
**Description:** Whether the status will be marked as sensitive.\
**Type:** {{<nullable>}} 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:** {{<nullable>}} 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:** {{<nullable>}} Integer\
**Version history:**\
2.7.0 - added
#### `params[language]` {#params-language}
**Description:** The language that will be used for the status.\
**Type:** {{<nullable>}} 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:** {{<nullable>}} Null\
**Version history:**\
2.7.0 - added
#### `params[idempotency]` {#params-idempotency}
**Description:** Idempotency key to prevent duplicate statuses.\
**Type:** {{<nullable>}} String\
**Version history:**\
2.7.0 - added
#### `params[with_rate_limit]` {#params-with_rate_limit}
**Description:** Whether the status should be rate limited <!-- TODO: What does this mean -->.\
**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" >}}