Programación y publicación
Obtener publicación programada
Consulta una publicación programada por id: contenido, estado, estado de entrega y resultados. Su versión es el valor expected_version que necesitan las operaciones de actualización, publicación, reintento y cancelación.
POST /studio-api/scheduled-posts/getContrato revisado: · sha256:563d2d581da0ad29
Descripción general
Consulta una publicación programada por id: contenido, estado, estado de entrega y resultados. Su versión es el valor expected_version que necesitan las operaciones de actualización, publicación, reintento y cancelación.
Una respuesta HTTP exitosa puede indicar aceptación, no finalización. Para trabajo en segundo plano, guarda el ID devuelto y consulta la misma operación hasta que termine. Una publicación programada o aceptada solo está publicada cuando la plataforma lo confirma; un tiempo de espera agotado en el cliente no determina el resultado.
Autenticación y permisos
Un token solo puede usar los derechos de su propietario. Cada solicitud comprueba pertenencia al espacio, propiedad del recurso, espacios elegidos y capacidades concedidas. Los perfiles core y full cambian qué herramientas se muestran; no conceden acceso.
Campos de solicitud
Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.
| Campo / rama | Tipo / obligatorio | Restricciones |
|---|---|---|
$ | objectObligatorio en el objeto principal |
|
id | stringObligatorio en el objeto principal |
|
JSON Schema completo
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
}
},
"required": [
"id"
],
"additionalProperties": false
}Respuesta y finalización
Estados HTTP de éxito: 200. Cuando la operación se completa: synchronous_http_response.
Una respuesta HTTP exitosa puede indicar aceptación, no finalización. Para trabajo en segundo plano, guarda el ID devuelto y consulta la misma operación hasta que termine. Una publicación programada o aceptada solo está publicada cuando la plataforma lo confirma; un tiempo de espera agotado en el cliente no determina el resultado.
Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.
| Campo / rama | Tipo / obligatorio | Restricciones |
|---|---|---|
$ | objectObligatorio en el objeto principal | — |
post | objectObligatorio en el objeto principal | — |
post.id | stringObligatorio en el objeto principal |
|
post.workspace_id | stringObligatorio en el objeto principal |
|
post.social_account_id | string | nullObligatorio en el objeto principal | — |
post.social_account_idanyOf 1 | stringObligatorio en el objeto principal |
|
post.social_account_idanyOf 2 | nullObligatorio en el objeto principal | — |
post.platform | stringObligatorio en el objeto principal |
|
post.destination | objectObligatorio en el objeto principal | — |
post.destination.social_account_id | string | nullObligatorio en el objeto principal | — |
post.destination.social_account_idanyOf 1 | stringObligatorio en el objeto principal |
|
post.destination.social_account_idanyOf 2 | nullObligatorio en el objeto principal | — |
post.destination.platform | stringObligatorio en el objeto principal |
|
post.destination.platform_user_id | string | nullObligatorio en el objeto principal | — |
post.destination.platform_user_idanyOf 1 | stringObligatorio en el objeto principal | — |
post.destination.platform_user_idanyOf 2 | nullObligatorio en el objeto principal | — |
post.destination.account_label | string | nullObligatorio en el objeto principal | — |
post.destination.account_labelanyOf 1 | stringObligatorio en el objeto principal | — |
post.destination.account_labelanyOf 2 | nullObligatorio en el objeto principal | — |
post.caption | string | nullObligatorio en el objeto principal | — |
post.captionanyOf 1 | stringObligatorio en el objeto principal | — |
post.captionanyOf 2 | nullObligatorio en el objeto principal | — |
post.hashtags | arrayObligatorio en el objeto principal | — |
post.hashtags[] | stringOpcional / elemento | — |
post.media | arrayObligatorio en el objeto principal | — |
post.media[] | objectOpcional / elemento | — |
post.media[].kind | stringObligatorio en el objeto principal |
|
post.media[].url | stringObligatorio en el objeto principal |
|
post.media[].cover_url | string | nullOpcional / elemento | — |
post.media[].cover_urlanyOf 1 | stringOpcional / elemento |
|
post.media[].cover_urlanyOf 2 | nullOpcional / elemento | — |
post.media[].cover_asset_id | integer | nullOpcional / elemento | — |
post.media[].cover_asset_idanyOf 1 | integerOpcional / elemento |
|
post.media[].cover_asset_idanyOf 2 | nullOpcional / elemento | — |
post.media[].asset_id | integer | nullOpcional / elemento | — |
post.media[].asset_idanyOf 1 | integerOpcional / elemento |
|
post.media[].asset_idanyOf 2 | nullOpcional / elemento | — |
post.media[].mime_type | string | nullOpcional / elemento | — |
post.media[].mime_typeanyOf 1 | stringOpcional / elemento |
|
post.media[].mime_typeanyOf 2 | nullOpcional / elemento | — |
post.media[].preview_url | string | nullOpcional / elemento | URL temporal autorizada de lectura; conserva url como identidad multimedia persistente de la publicación programada. — |
post.media[].preview_urlanyOf 1 | stringOpcional / elemento |
|
post.media[].preview_urlanyOf 2 | nullOpcional / elemento | — |
post.media[].cover_preview_url | string | nullOpcional / elemento | URL temporal autorizada de lectura de portada; conserva cover_url como identidad multimedia persistente. — |
post.media[].cover_preview_urlanyOf 1 | stringOpcional / elemento |
|
post.media[].cover_preview_urlanyOf 2 | nullOpcional / elemento | — |
post.media[].preview_expires_at | string | nullOpcional / elemento | — |
post.media[].preview_expires_atanyOf 1 | stringOpcional / elemento |
|
post.media[].preview_expires_atanyOf 2 | nullOpcional / elemento | — |
post.link_url | string | nullOpcional / elemento | — |
post.link_urlanyOf 1 | stringOpcional / elemento |
|
post.link_urlanyOf 2 | nullOpcional / elemento | — |
post.publish_options | objectObligatorio en el objeto principal | — |
post.publish_options.post_type | stringOpcional / elemento |
|
post.publish_options.location_id | stringOpcional / elemento |
|
post.publish_options.share_to_feed | booleanOpcional / elemento | — |
post.publish_options.collaborators | arrayOpcional / elemento |
|
post.publish_options.collaborators[] | stringOpcional / elemento |
|
post.publish_options.first_comment | stringOpcional / elemento |
|
post.publish_options.topic_tag | stringOpcional / elemento |
|
post.publish_options.thumb_offset_ms | integerOpcional / elemento |
|
post.publish_options.title | stringOpcional / elemento |
|
post.publish_options.youtube_privacy_status | stringOpcional / elemento |
|
post.publish_options.youtube_category_id | stringOpcional / elemento |
|
post.publish_options.youtube_contains_synthetic_media | booleanOpcional / elemento | — |
post.publish_options.description | stringOpcional / elemento |
|
post.publish_options.category_id | stringOpcional / elemento |
|
post.publish_options.privacy_status | stringOpcional / elemento |
|
post.publish_options.cancellation_mode | stringOpcional / elemento |
|
post.publish_options.tags | arrayOpcional / elemento | — |
post.publish_options.tags[] | stringOpcional / elemento | — |
post.publish_options.default_language | stringOpcional / elemento | — |
post.publish_options.localizations | objectOpcional / elemento |
|
post.publish_options.localizations.* | any JSON valueOpcional / elemento | — |
post.publish_options.license | stringOpcional / elemento |
|
post.publish_options.embeddable | booleanOpcional / elemento | — |
post.publish_options.public_stats_viewable | booleanOpcional / elemento | — |
post.publish_options.self_declared_made_for_kids | booleanOpcional / elemento | — |
post.publish_options.contains_synthetic_media | booleanOpcional / elemento | — |
post.publish_options.has_paid_product_placement | booleanOpcional / elemento | — |
post.publish_options.recording_date | stringOpcional / elemento | — |
post.publish_options.notify_subscribers | booleanOpcional / elemento | — |
post.publish_options.thumbnail_asset_id | integerOpcional / elemento |
|
post.publish_options.surface_expectation | stringOpcional / elemento |
|
post.publish_options.brand_partner | objectOpcional / elemento |
|
post.publish_options.brand_partner.* | any JSON valueOpcional / elemento | — |
post.publish_options.cover_asset_id | integerOpcional / elemento |
|
post.publish_options.audio_name | stringOpcional / elemento | — |
post.publish_options.trial_params | objectOpcional / elemento |
|
post.publish_options.trial_params.* | any JSON valueOpcional / elemento | — |
post.publish_options.is_ai_generated | booleanOpcional / elemento | — |
post.publish_options.branded_content_sponsor_ids | arrayOpcional / elemento | — |
post.publish_options.branded_content_sponsor_ids[] | stringOpcional / elemento | — |
post.publish_options.is_paid_partnership | booleanOpcional / elemento | — |
post.publish_options.media_options | arrayOpcional / elemento | — |
post.publish_options.media_options[] | objectOpcional / elemento |
|
post.publish_options.media_options[].* | any JSON valueOpcional / elemento | — |
post.publish_options.reply_to_id | stringOpcional / elemento | — |
post.publish_options.quote_post_id | stringOpcional / elemento | — |
post.publish_options.repost_target_id | stringOpcional / elemento | — |
post.publish_options.reply_control | stringOpcional / elemento | — |
post.publish_options.enable_reply_approvals | booleanOpcional / elemento | — |
post.publish_options.link_attachment | stringOpcional / elemento |
|
post.publish_options.poll_attachment | objectOpcional / elemento |
|
post.publish_options.poll_attachment.* | any JSON valueOpcional / elemento | — |
post.publish_options.gif_attachment | objectOpcional / elemento |
|
post.publish_options.gif_attachment.* | any JSON valueOpcional / elemento | — |
post.publish_options.text_attachment | objectOpcional / elemento |
|
post.publish_options.text_attachment.* | any JSON valueOpcional / elemento | — |
post.publish_options.text_entities | arrayOpcional / elemento | — |
post.publish_options.text_entities[] | objectOpcional / elemento |
|
post.publish_options.text_entities[].* | any JSON valueOpcional / elemento | — |
post.publish_options.is_spoiler_media | booleanOpcional / elemento | — |
post.publish_options.is_ghost_post | booleanOpcional / elemento | — |
post.publish_options.allowlisted_country_codes | arrayOpcional / elemento | — |
post.publish_options.allowlisted_country_codes[] | stringOpcional / elemento | — |
post.publish_options.crossreshare_to_ig | booleanOpcional / elemento | — |
post.publish_options.crossreshare_to_ig_dark_mode | booleanOpcional / elemento | — |
post.publish_options.auto_publish_text | booleanOpcional / elemento | — |
post.publish_options.publication_mode | stringOpcional / elemento |
|
post.publish_options.backdated_time | numberOpcional / elemento | — |
post.publish_options.backdated_time_granularity | stringOpcional / elemento |
|
post.publish_options.place | stringOpcional / elemento | — |
post.publish_options.feed_targeting | objectOpcional / elemento |
|
post.publish_options.feed_targeting.* | any JSON valueOpcional / elemento | — |
post.publish_options.targeting | objectOpcional / elemento |
|
post.publish_options.targeting.* | any JSON valueOpcional / elemento | — |
post.publish_options.child_attachments | arrayOpcional / elemento | — |
post.publish_options.child_attachments[] | objectOpcional / elemento |
|
post.publish_options.child_attachments[].* | any JSON valueOpcional / elemento | — |
post.publish_options.multi_share_end_card | booleanOpcional / elemento | — |
post.publish_options.multi_share_optimized | booleanOpcional / elemento | — |
post.publish_options.unpublished_content_type | stringOpcional / elemento | — |
post.publish_options.no_story | booleanOpcional / elemento | — |
post.publish_options.crossposted_video_id | stringOpcional / elemento | — |
post.publish_options.spherical | booleanOpcional / elemento | — |
post.scheduled_at | stringObligatorio en el objeto principal | — |
post.display_timezone | stringObligatorio en el objeto principal |
|
post.local_scheduled_at | string | nullOpcional / elemento | — |
post.local_scheduled_atanyOf 1 | stringOpcional / elemento |
|
post.local_scheduled_atanyOf 2 | nullOpcional / elemento | — |
post.schedule_timezone | string | nullOpcional / elemento | — |
post.schedule_timezoneanyOf 1 | stringOpcional / elemento |
|
post.schedule_timezoneanyOf 2 | nullOpcional / elemento | — |
post.schedule_dst_disambiguation | string | nullOpcional / elemento | — |
post.schedule_dst_disambiguationanyOf 1 | stringOpcional / elemento |
|
post.schedule_dst_disambiguationanyOf 2 | nullOpcional / elemento | — |
post.schedule_intent_state | stringOpcional / elemento |
|
post.expires_at | string | nullObligatorio en el objeto principal | — |
post.expires_atanyOf 1 | stringObligatorio en el objeto principal | — |
post.expires_atanyOf 2 | nullObligatorio en el objeto principal | — |
post.status | stringObligatorio en el objeto principal |
|
post.version | integerObligatorio en el objeto principal |
|
post.automatic_retry_enabled | booleanObligatorio en el objeto principal | — |
post.delete_requested_at | string | nullObligatorio en el objeto principal | — |
post.delete_requested_atanyOf 1 | stringObligatorio en el objeto principal | — |
post.delete_requested_atanyOf 2 | nullObligatorio en el objeto principal | — |
post.published_at | string | nullObligatorio en el objeto principal | — |
post.published_atanyOf 1 | stringObligatorio en el objeto principal | — |
post.published_atanyOf 2 | nullObligatorio en el objeto principal | — |
post.deleted_at | string | nullObligatorio en el objeto principal | — |
post.deleted_atanyOf 1 | stringObligatorio en el objeto principal | — |
post.deleted_atanyOf 2 | nullObligatorio en el objeto principal | — |
post.provider_post_id | string | nullObligatorio en el objeto principal | — |
post.provider_post_idanyOf 1 | stringObligatorio en el objeto principal | — |
post.provider_post_idanyOf 2 | nullObligatorio en el objeto principal | — |
post.permalink | string | nullObligatorio en el objeto principal | — |
post.permalinkanyOf 1 | stringObligatorio en el objeto principal |
|
post.permalinkanyOf 2 | nullObligatorio en el objeto principal | — |
post.created_at | stringObligatorio en el objeto principal | — |
post.updated_at | stringObligatorio en el objeto principal | — |
delivery | objectObligatorio en el objeto principal | — |
delivery.stage | stringObligatorio en el objeto principal |
|
delivery.message | stringObligatorio en el objeto principal |
|
actions | arrayObligatorio en el objeto principal |
|
actions[] | objectOpcional / elemento | — |
actions[].action | stringObligatorio en el objeto principal |
|
actions[].allowed | booleanObligatorio en el objeto principal | — |
actions[].reason_code | stringObligatorio en el objeto principal |
|
actions[].message | stringObligatorio en el objeto principal |
|
attempts | arrayObligatorio en el objeto principal |
|
attempts[] | objectOpcional / elemento | — |
attempts[].id | stringObligatorio en el objeto principal |
|
attempts[].operation | stringObligatorio en el objeto principal |
|
attempts[].attempt_number | integerObligatorio en el objeto principal |
|
attempts[].dispatched_at | stringObligatorio en el objeto principal | — |
outcomes | arrayObligatorio en el objeto principal |
|
outcomes[] | objectOpcional / elemento | — |
outcomes[].id | stringObligatorio en el objeto principal |
|
outcomes[].publication_attempt_id | string | nullObligatorio en el objeto principal | — |
outcomes[].publication_attempt_idanyOf 1 | stringObligatorio en el objeto principal |
|
outcomes[].publication_attempt_idanyOf 2 | nullObligatorio en el objeto principal | — |
outcomes[].operation | stringObligatorio en el objeto principal |
|
outcomes[].status | stringObligatorio en el objeto principal |
|
outcomes[].provider_post_id | string | nullObligatorio en el objeto principal | — |
outcomes[].provider_post_idanyOf 1 | stringObligatorio en el objeto principal | — |
outcomes[].provider_post_idanyOf 2 | nullObligatorio en el objeto principal | — |
outcomes[].permalink | string | nullObligatorio en el objeto principal | — |
outcomes[].permalinkanyOf 1 | stringObligatorio en el objeto principal |
|
outcomes[].permalinkanyOf 2 | nullObligatorio en el objeto principal | — |
outcomes[].message | stringObligatorio en el objeto principal |
|
outcomes[].observed_at | stringObligatorio en el objeto principal | — |
outcomes[].terminal_suboperation | objectOpcional / elemento | — |
outcomes[].terminal_suboperation.kind | stringObligatorio en el objeto principal |
|
outcomes[].terminal_suboperation.status | stringObligatorio en el objeto principal |
|
outcomes[].terminal_suboperation.external_id | string | nullObligatorio en el objeto principal | — |
outcomes[].terminal_suboperation.external_idanyOf 1 | stringObligatorio en el objeto principal |
|
outcomes[].terminal_suboperation.external_idanyOf 2 | nullObligatorio en el objeto principal | — |
JSON Schema completo
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"post": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
},
"workspace_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"social_account_id": {
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "null"
}
]
},
"platform": {
"type": "string",
"enum": [
"instagram",
"threads",
"facebook",
"youtube",
"x"
]
},
"destination": {
"type": "object",
"properties": {
"social_account_id": {
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "null"
}
]
},
"platform": {
"type": "string",
"enum": [
"instagram",
"threads",
"facebook",
"youtube",
"x"
]
},
"platform_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"account_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"social_account_id",
"platform",
"platform_user_id",
"account_label"
]
},
"caption": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"hashtags": {
"type": "array",
"items": {
"type": "string"
}
},
"media": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"image",
"video"
]
},
"url": {
"type": "string",
"format": "uri"
},
"cover_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"cover_asset_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"asset_id": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"mime_type": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 160
},
{
"type": "null"
}
]
},
"preview_url": {
"description": "Temporary authorized read URL; keep url as persisted Scheduled Post media identity.",
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"cover_preview_url": {
"description": "Temporary authorized cover read URL; keep cover_url as persisted media identity.",
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"preview_expires_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"url"
]
}
},
"link_url": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"publish_options": {
"type": "object",
"properties": {
"post_type": {
"type": "string",
"enum": [
"TEXT",
"LINK",
"IMAGE",
"MULTI_IMAGE",
"VIDEO",
"CAROUSEL",
"REELS",
"STORY_IMAGE",
"STORY_VIDEO",
"REPOST",
"SHORT"
]
},
"location_id": {
"type": "string",
"minLength": 1
},
"share_to_feed": {
"type": "boolean"
},
"collaborators": {
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"first_comment": {
"type": "string",
"minLength": 1,
"maxLength": 2200
},
"topic_tag": {
"type": "string",
"minLength": 1
},
"thumb_offset_ms": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"title": {
"type": "string",
"maxLength": 255
},
"youtube_privacy_status": {
"type": "string",
"enum": [
"private",
"unlisted",
"public"
]
},
"youtube_category_id": {
"type": "string",
"pattern": "^\\d+$"
},
"youtube_contains_synthetic_media": {
"type": "boolean"
},
"description": {
"type": "string",
"maxLength": 5000
},
"category_id": {
"type": "string",
"pattern": "^\\d+$"
},
"privacy_status": {
"type": "string",
"enum": [
"private",
"unlisted",
"public"
]
},
"cancellation_mode": {
"type": "string",
"enum": [
"DELETE",
"UNSCHEDULE_KEEP_PRIVATE"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"default_language": {
"type": "string"
},
"localizations": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"license": {
"type": "string",
"enum": [
"youtube",
"creativeCommon"
]
},
"embeddable": {
"type": "boolean"
},
"public_stats_viewable": {
"type": "boolean"
},
"self_declared_made_for_kids": {
"type": "boolean"
},
"contains_synthetic_media": {
"type": "boolean"
},
"has_paid_product_placement": {
"type": "boolean"
},
"recording_date": {
"type": "string"
},
"notify_subscribers": {
"type": "boolean"
},
"thumbnail_asset_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"surface_expectation": {
"type": "string",
"const": "SHORT"
},
"brand_partner": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"cover_asset_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"audio_name": {
"type": "string"
},
"trial_params": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"is_ai_generated": {
"type": "boolean"
},
"branded_content_sponsor_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"is_paid_partnership": {
"type": "boolean"
},
"media_options": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"reply_to_id": {
"type": "string"
},
"quote_post_id": {
"type": "string"
},
"repost_target_id": {
"type": "string"
},
"reply_control": {
"type": "string"
},
"enable_reply_approvals": {
"type": "boolean"
},
"link_attachment": {
"type": "string",
"format": "uri"
},
"poll_attachment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"gif_attachment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"text_attachment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"text_entities": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"is_spoiler_media": {
"type": "boolean"
},
"is_ghost_post": {
"type": "boolean"
},
"allowlisted_country_codes": {
"type": "array",
"items": {
"type": "string"
}
},
"crossreshare_to_ig": {
"type": "boolean"
},
"crossreshare_to_ig_dark_mode": {
"type": "boolean"
},
"auto_publish_text": {
"type": "boolean"
},
"publication_mode": {
"type": "string",
"enum": [
"PUBLISH",
"DRAFT"
]
},
"backdated_time": {
"type": "number"
},
"backdated_time_granularity": {
"type": "string",
"enum": [
"year",
"month",
"day",
"hour",
"minute"
]
},
"place": {
"type": "string"
},
"feed_targeting": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"targeting": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"child_attachments": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"multi_share_end_card": {
"type": "boolean"
},
"multi_share_optimized": {
"type": "boolean"
},
"unpublished_content_type": {
"type": "string"
},
"no_story": {
"type": "boolean"
},
"crossposted_video_id": {
"type": "string"
},
"spherical": {
"type": "boolean"
}
}
},
"scheduled_at": {
"type": "string"
},
"display_timezone": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"local_scheduled_at": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$"
},
{
"type": "null"
}
]
},
"schedule_timezone": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 80
},
{
"type": "null"
}
]
},
"schedule_dst_disambiguation": {
"anyOf": [
{
"type": "string",
"enum": [
"exact",
"earlier",
"later"
]
},
{
"type": "null"
}
]
},
"schedule_intent_state": {
"type": "string",
"enum": [
"verified",
"legacy_unverified"
]
},
"expires_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"scheduled",
"publishing",
"published",
"failed",
"expired",
"needs_reschedule",
"cancelled",
"deleted"
]
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"automatic_retry_enabled": {
"type": "boolean"
},
"delete_requested_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"published_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"deleted_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"provider_post_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"permalink": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"created_at": {
"type": "string"
},
"updated_at": {
"type": "string"
}
},
"required": [
"id",
"workspace_id",
"social_account_id",
"platform",
"destination",
"caption",
"hashtags",
"media",
"publish_options",
"scheduled_at",
"display_timezone",
"expires_at",
"status",
"version",
"automatic_retry_enabled",
"delete_requested_at",
"published_at",
"deleted_at",
"provider_post_id",
"permalink",
"created_at",
"updated_at"
]
},
"delivery": {
"type": "object",
"properties": {
"stage": {
"type": "string",
"enum": [
"scheduled",
"preparing",
"delivering",
"reconciling",
"cancelling",
"terminal"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"stage",
"message"
]
},
"actions": {
"minItems": 5,
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"edit",
"publish_now",
"retry",
"cancel",
"delete"
]
},
"allowed": {
"type": "boolean"
},
"reason_code": {
"type": "string",
"enum": [
"allowed",
"terminal_state",
"provider_preparation_started",
"delivery_started",
"not_scheduled",
"not_failed",
"retry_evidence_missing",
"destination_disconnected",
"expiry_passed",
"cancellation_in_progress",
"delete_in_progress",
"not_published"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"action",
"allowed",
"reason_code",
"message"
]
}
},
"attempts": {
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"operation": {
"type": "string",
"enum": [
"publish",
"delete"
]
},
"attempt_number": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"dispatched_at": {
"type": "string"
}
},
"required": [
"id",
"operation",
"attempt_number",
"dispatched_at"
]
}
},
"outcomes": {
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"publication_attempt_id": {
"anyOf": [
{
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
{
"type": "null"
}
]
},
"operation": {
"type": "string",
"enum": [
"publish",
"delete"
]
},
"status": {
"type": "string",
"enum": [
"published",
"failed",
"deleted"
]
},
"provider_post_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"permalink": {
"anyOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "null"
}
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"observed_at": {
"type": "string"
},
"terminal_suboperation": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "instagram_first_comment"
},
"status": {
"type": "string",
"enum": [
"succeeded",
"failed",
"attention"
]
},
"external_id": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 500
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"status",
"external_id"
]
}
},
"required": [
"id",
"publication_attempt_id",
"operation",
"status",
"provider_post_id",
"permalink",
"message",
"observed_at"
]
}
}
},
"required": [
"post",
"delivery",
"actions",
"attempts",
"outcomes"
]
}Errores y reintentos seguros
Comprueba el estado HTTP y el cuerpo de respuesta. Un error de validación 400 puede contener un ZodError; los errores del controlador usan los campos error, message y code. Conserva request_id o x-request-id para el diagnóstico, sin credenciales. Corrige los errores de acceso 401/403 antes de reintentar y respeta Retry-After para 429. Si una escritura es incierta o devuelve 5xx, consulta primero el resultado existente. Reutiliza una clave de idempotencia solo donde se admita; el comportamiento de reintento varía por operación y no garantiza una entrega exactamente una vez.
Guía de solución de problemasEjemplos
Estos ejemplos usan valores ficticios comprobados con los esquemas. Sustituye los IDs por otros autorizados, los archivos multimedia por recursos listos y las fechas por tu hora de publicación confirmada. Comprueba la elegibilidad de la cuenta antes de enviar una escritura. Esta página no envía solicitudes API.
Establece SOSOAPI_ACCESS_TOKEN en tu servidor con una credencial aceptada por esta operación y mantenla fuera del código del navegador. Para un agente, usa sosoapi auth login para iniciar sesión en el navegador y deja a la CLI renovar sus credenciales.
request.json
{
"id": "11111111-1111-4111-8111-111111111111"
}cURL
curl --request POST \
"https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/get" \
-H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @request.jsonJavaScript
// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/get", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
body: JSON.stringify({
"id": "11111111-1111-4111-8111-111111111111"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.CLI
npx sosoapi api post /studio-api/scheduled-posts/get < request.jsonEjemplo de respuesta sintética
{
"post": {
"id": "11111111-1111-4111-8111-111111111111",
"workspace_id": "11111111-1111-4111-8111-111111111111",
"social_account_id": null,
"platform": "instagram",
"destination": {
"social_account_id": null,
"platform": "instagram",
"platform_user_id": null,
"account_label": null
},
"caption": null,
"hashtags": [],
"media": [],
"publish_options": {},
"scheduled_at": "example",
"display_timezone": "UTC",
"expires_at": null,
"status": "scheduled",
"version": 1,
"automatic_retry_enabled": false,
"delete_requested_at": null,
"published_at": null,
"deleted_at": null,
"provider_post_id": null,
"permalink": null,
"created_at": "example",
"updated_at": "example"
},
"delivery": {
"stage": "scheduled",
"message": "example"
},
"actions": [
{
"action": "edit",
"allowed": true,
"reason_code": "allowed",
"message": "Allowed in this example state."
},
{
"action": "publish_now",
"allowed": true,
"reason_code": "allowed",
"message": "Allowed in this example state."
},
{
"action": "retry",
"allowed": false,
"reason_code": "not_failed",
"message": "This example post has not failed."
},
{
"action": "cancel",
"allowed": true,
"reason_code": "allowed",
"message": "Allowed in this example state."
},
{
"action": "delete",
"allowed": true,
"reason_code": "allowed",
"message": "Allowed in this example state."
}
],
"attempts": [],
"outcomes": []
}