검색은 사용할 때만 로드됩니다. 아래에서 모든 분류를 살펴보세요.

예약 및 게시

예약 게시물 재시도

실패한 예약 게시물을 재시도하며 선택적으로 새 scheduled_at을 지정합니다. expected_version이 필요합니다.

POST /studio-api/scheduled-posts/retry

계약 검토: · sha256:563d2d581da0ad29

개요

실패한 예약 게시물을 재시도하며 선택적으로 새 scheduled_at을 지정합니다. expected_version이 필요합니다.

HTTP 성공 응답은 완료가 아닌 접수를 뜻할 수 있습니다. 백그라운드 작업은 반환 ID를 저장하고 완료까지 같은 작업을 확인하세요. 예약 또는 접수 게시물은 플랫폼이 확인해야 게시 완료입니다. 클라이언트 시간 초과로 결과를 판단할 수 없습니다.

인증 및 권한

허용 자격 증명 유형
user_session, delegated_oauth, personal_access_token
위임된 기능
agent:publish
최소 Workspace 역할
editor
접근 범위
이 사용자에게 접근 권한이 있는 리소스
모든 Workspace 동의 필요
아니요
상태 변경
예
작업 완료 시
terminal publication outcome

토큰은 소유자의 권한만 사용할 수 있습니다. 각 요청은 Workspace 멤버십, 리소스 소유권, 선택 Workspace, 부여 기능을 확인합니다. core와 full 프로필은 표시 도구를 바꾸며 접근 권한은 부여하지 않습니다.

요청 필드

필수는 상위 객체와 선택 분기 안에서 필수라는 뜻입니다. 필수 자식이 선택적 상위 객체를 필수로 만들지는 않습니다. 아래 규칙과 필드명은 계약에서 복사했습니다.

요청 필드
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수
  • additionalProperties: false
idstring상위 객체에서 필수
  • 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}$"
expected_versioninteger상위 객체에서 필수
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
scheduled_atstring선택 / 항목
  • 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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
전체 JSON Schema
{
  "$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}$"
    },
    "expected_version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "scheduled_at": {
      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    }
  },
  "required": [
    "id",
    "expected_version"
  ],
  "additionalProperties": false
}

응답 및 완료

성공 HTTP 상태: 200. 작업 완료 시: terminal publication outcome.

HTTP 성공 응답은 완료가 아닌 접수를 뜻할 수 있습니다. 백그라운드 작업은 반환 ID를 저장하고 완료까지 같은 작업을 확인하세요. 예약 또는 접수 게시물은 플랫폼이 확인해야 게시 완료입니다. 클라이언트 시간 초과로 결과를 판단할 수 없습니다.

필수는 상위 객체와 선택 분기 안에서 필수라는 뜻입니다. 필수 자식이 선택적 상위 객체를 필수로 만들지는 않습니다. 아래 규칙과 필드명은 계약에서 복사했습니다.

응답 및 완료
필드 / 분기유형 / 필수 여부제약 조건
$object상위 객체에서 필수—
postobject상위 객체에서 필수—
post.idstring상위 객체에서 필수
  • 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}$"
post.workspace_idstring상위 객체에서 필수
  • 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)$"
post.social_account_idstring | null상위 객체에서 필수—
post.social_account_idanyOf 1string상위 객체에서 필수
  • 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)$"
post.social_account_idanyOf 2null상위 객체에서 필수—
post.platformstring상위 객체에서 필수
  • enum: ["instagram","threads","facebook","youtube","x"]
post.destinationobject상위 객체에서 필수—
post.destination.social_account_idstring | null상위 객체에서 필수—
post.destination.social_account_idanyOf 1string상위 객체에서 필수
  • 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)$"
post.destination.social_account_idanyOf 2null상위 객체에서 필수—
post.destination.platformstring상위 객체에서 필수
  • enum: ["instagram","threads","facebook","youtube","x"]
post.destination.platform_user_idstring | null상위 객체에서 필수—
post.destination.platform_user_idanyOf 1string상위 객체에서 필수—
post.destination.platform_user_idanyOf 2null상위 객체에서 필수—
post.destination.account_labelstring | null상위 객체에서 필수—
post.destination.account_labelanyOf 1string상위 객체에서 필수—
post.destination.account_labelanyOf 2null상위 객체에서 필수—
post.captionstring | null상위 객체에서 필수—
post.captionanyOf 1string상위 객체에서 필수—
post.captionanyOf 2null상위 객체에서 필수—
post.hashtagsarray상위 객체에서 필수—
post.hashtags[]string선택 / 항목—
post.mediaarray상위 객체에서 필수—
post.media[]object선택 / 항목—
post.media[].kindstring상위 객체에서 필수
  • enum: ["image","video"]
post.media[].urlstring상위 객체에서 필수
  • format: "uri"
post.media[].cover_urlstring | null선택 / 항목—
post.media[].cover_urlanyOf 1string선택 / 항목
  • format: "uri"
post.media[].cover_urlanyOf 2null선택 / 항목—
post.media[].cover_asset_idinteger | null선택 / 항목—
post.media[].cover_asset_idanyOf 1integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
post.media[].cover_asset_idanyOf 2null선택 / 항목—
post.media[].asset_idinteger | null선택 / 항목—
post.media[].asset_idanyOf 1integer선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
post.media[].asset_idanyOf 2null선택 / 항목—
post.media[].mime_typestring | null선택 / 항목—
post.media[].mime_typeanyOf 1string선택 / 항목
  • minLength: 1
  • maxLength: 160
post.media[].mime_typeanyOf 2null선택 / 항목—
post.media[].preview_urlstring | null선택 / 항목

임시 승인 읽기 URL. url을 영속 Scheduled Post 미디어 ID로 유지하세요.

—
post.media[].preview_urlanyOf 1string선택 / 항목
  • format: "uri"
post.media[].preview_urlanyOf 2null선택 / 항목—
post.media[].cover_preview_urlstring | null선택 / 항목

임시 승인 커버 읽기 URL. cover_url을 영속 미디어 ID로 유지하세요.

—
post.media[].cover_preview_urlanyOf 1string선택 / 항목
  • format: "uri"
post.media[].cover_preview_urlanyOf 2null선택 / 항목—
post.media[].preview_expires_atstring | null선택 / 항목—
post.media[].preview_expires_atanyOf 1string선택 / 항목
  • 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))$"
post.media[].preview_expires_atanyOf 2null선택 / 항목—
post.link_urlstring | null선택 / 항목—
post.link_urlanyOf 1string선택 / 항목
  • format: "uri"
post.link_urlanyOf 2null선택 / 항목—
post.publish_optionsobject상위 객체에서 필수—
post.publish_options.post_typestring선택 / 항목
  • enum: ["TEXT","LINK","IMAGE","MULTI_IMAGE","VIDEO","CAROUSEL","REELS","STORY_IMAGE","STORY_VIDEO","REPOST","SHORT"]
post.publish_options.location_idstring선택 / 항목
  • minLength: 1
post.publish_options.share_to_feedboolean선택 / 항목—
post.publish_options.collaboratorsarray선택 / 항목
  • maxItems: 3
post.publish_options.collaborators[]string선택 / 항목
  • minLength: 1
post.publish_options.first_commentstring선택 / 항목
  • minLength: 1
  • maxLength: 2200
post.publish_options.topic_tagstring선택 / 항목
  • minLength: 1
post.publish_options.thumb_offset_msinteger선택 / 항목
  • minimum: 0
  • maximum: 9007199254740991
post.publish_options.titlestring선택 / 항목
  • maxLength: 255
post.publish_options.youtube_privacy_statusstring선택 / 항목
  • enum: ["private","unlisted","public"]
post.publish_options.youtube_category_idstring선택 / 항목
  • pattern: "^\\d+$"
post.publish_options.youtube_contains_synthetic_mediaboolean선택 / 항목—
post.publish_options.descriptionstring선택 / 항목
  • maxLength: 5000
post.publish_options.category_idstring선택 / 항목
  • pattern: "^\\d+$"
post.publish_options.privacy_statusstring선택 / 항목
  • enum: ["private","unlisted","public"]
post.publish_options.cancellation_modestring선택 / 항목
  • enum: ["DELETE","UNSCHEDULE_KEEP_PRIVATE"]
post.publish_options.tagsarray선택 / 항목—
post.publish_options.tags[]string선택 / 항목—
post.publish_options.default_languagestring선택 / 항목—
post.publish_options.localizationsobject선택 / 항목
  • additionalProperties: {}
post.publish_options.localizations.*any JSON value선택 / 항목—
post.publish_options.licensestring선택 / 항목
  • enum: ["youtube","creativeCommon"]
post.publish_options.embeddableboolean선택 / 항목—
post.publish_options.public_stats_viewableboolean선택 / 항목—
post.publish_options.self_declared_made_for_kidsboolean선택 / 항목—
post.publish_options.contains_synthetic_mediaboolean선택 / 항목—
post.publish_options.has_paid_product_placementboolean선택 / 항목—
post.publish_options.recording_datestring선택 / 항목—
post.publish_options.notify_subscribersboolean선택 / 항목—
post.publish_options.thumbnail_asset_idinteger선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
post.publish_options.surface_expectationstring선택 / 항목
  • const: "SHORT"
post.publish_options.brand_partnerobject선택 / 항목
  • additionalProperties: {}
post.publish_options.brand_partner.*any JSON value선택 / 항목—
post.publish_options.cover_asset_idinteger선택 / 항목
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
post.publish_options.audio_namestring선택 / 항목—
post.publish_options.trial_paramsobject선택 / 항목
  • additionalProperties: {}
post.publish_options.trial_params.*any JSON value선택 / 항목—
post.publish_options.is_ai_generatedboolean선택 / 항목—
post.publish_options.branded_content_sponsor_idsarray선택 / 항목—
post.publish_options.branded_content_sponsor_ids[]string선택 / 항목—
post.publish_options.is_paid_partnershipboolean선택 / 항목—
post.publish_options.media_optionsarray선택 / 항목—
post.publish_options.media_options[]object선택 / 항목
  • additionalProperties: {}
post.publish_options.media_options[].*any JSON value선택 / 항목—
post.publish_options.reply_to_idstring선택 / 항목—
post.publish_options.quote_post_idstring선택 / 항목—
post.publish_options.repost_target_idstring선택 / 항목—
post.publish_options.reply_controlstring선택 / 항목—
post.publish_options.enable_reply_approvalsboolean선택 / 항목—
post.publish_options.link_attachmentstring선택 / 항목
  • format: "uri"
post.publish_options.poll_attachmentobject선택 / 항목
  • additionalProperties: {}
post.publish_options.poll_attachment.*any JSON value선택 / 항목—
post.publish_options.gif_attachmentobject선택 / 항목
  • additionalProperties: {}
post.publish_options.gif_attachment.*any JSON value선택 / 항목—
post.publish_options.text_attachmentobject선택 / 항목
  • additionalProperties: {}
post.publish_options.text_attachment.*any JSON value선택 / 항목—
post.publish_options.text_entitiesarray선택 / 항목—
post.publish_options.text_entities[]object선택 / 항목
  • additionalProperties: {}
post.publish_options.text_entities[].*any JSON value선택 / 항목—
post.publish_options.is_spoiler_mediaboolean선택 / 항목—
post.publish_options.is_ghost_postboolean선택 / 항목—
post.publish_options.allowlisted_country_codesarray선택 / 항목—
post.publish_options.allowlisted_country_codes[]string선택 / 항목—
post.publish_options.crossreshare_to_igboolean선택 / 항목—
post.publish_options.crossreshare_to_ig_dark_modeboolean선택 / 항목—
post.publish_options.auto_publish_textboolean선택 / 항목—
post.publish_options.publication_modestring선택 / 항목
  • enum: ["PUBLISH","DRAFT"]
post.publish_options.backdated_timenumber선택 / 항목—
post.publish_options.backdated_time_granularitystring선택 / 항목
  • enum: ["year","month","day","hour","minute"]
post.publish_options.placestring선택 / 항목—
post.publish_options.feed_targetingobject선택 / 항목
  • additionalProperties: {}
post.publish_options.feed_targeting.*any JSON value선택 / 항목—
post.publish_options.targetingobject선택 / 항목
  • additionalProperties: {}
post.publish_options.targeting.*any JSON value선택 / 항목—
post.publish_options.child_attachmentsarray선택 / 항목—
post.publish_options.child_attachments[]object선택 / 항목
  • additionalProperties: {}
post.publish_options.child_attachments[].*any JSON value선택 / 항목—
post.publish_options.multi_share_end_cardboolean선택 / 항목—
post.publish_options.multi_share_optimizedboolean선택 / 항목—
post.publish_options.unpublished_content_typestring선택 / 항목—
post.publish_options.no_storyboolean선택 / 항목—
post.publish_options.crossposted_video_idstring선택 / 항목—
post.publish_options.sphericalboolean선택 / 항목—
post.scheduled_atstring상위 객체에서 필수—
post.display_timezonestring상위 객체에서 필수
  • minLength: 1
  • maxLength: 80
post.local_scheduled_atstring | null선택 / 항목—
post.local_scheduled_atanyOf 1string선택 / 항목
  • pattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$"
post.local_scheduled_atanyOf 2null선택 / 항목—
post.schedule_timezonestring | null선택 / 항목—
post.schedule_timezoneanyOf 1string선택 / 항목
  • minLength: 1
  • maxLength: 80
post.schedule_timezoneanyOf 2null선택 / 항목—
post.schedule_dst_disambiguationstring | null선택 / 항목—
post.schedule_dst_disambiguationanyOf 1string선택 / 항목
  • enum: ["exact","earlier","later"]
post.schedule_dst_disambiguationanyOf 2null선택 / 항목—
post.schedule_intent_statestring선택 / 항목
  • enum: ["verified","legacy_unverified"]
post.expires_atstring | null상위 객체에서 필수—
post.expires_atanyOf 1string상위 객체에서 필수—
post.expires_atanyOf 2null상위 객체에서 필수—
post.statusstring상위 객체에서 필수
  • enum: ["scheduled","publishing","published","failed","expired","needs_reschedule","cancelled","deleted"]
post.versioninteger상위 객체에서 필수
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
post.automatic_retry_enabledboolean상위 객체에서 필수—
post.delete_requested_atstring | null상위 객체에서 필수—
post.delete_requested_atanyOf 1string상위 객체에서 필수—
post.delete_requested_atanyOf 2null상위 객체에서 필수—
post.published_atstring | null상위 객체에서 필수—
post.published_atanyOf 1string상위 객체에서 필수—
post.published_atanyOf 2null상위 객체에서 필수—
post.deleted_atstring | null상위 객체에서 필수—
post.deleted_atanyOf 1string상위 객체에서 필수—
post.deleted_atanyOf 2null상위 객체에서 필수—
post.provider_post_idstring | null상위 객체에서 필수—
post.provider_post_idanyOf 1string상위 객체에서 필수—
post.provider_post_idanyOf 2null상위 객체에서 필수—
post.permalinkstring | null상위 객체에서 필수—
post.permalinkanyOf 1string상위 객체에서 필수
  • format: "uri"
post.permalinkanyOf 2null상위 객체에서 필수—
post.created_atstring상위 객체에서 필수—
post.updated_atstring상위 객체에서 필수—
post.project_idstring | null상위 객체에서 필수—
post.project_idanyOf 1string상위 객체에서 필수
  • 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)$"
post.project_idanyOf 2null상위 객체에서 필수—
post.batch_idstring | null상위 객체에서 필수—
post.batch_idanyOf 1string상위 객체에서 필수
  • 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)$"
post.batch_idanyOf 2null상위 객체에서 필수—
post.source_refobject | null상위 객체에서 필수—
post.source_refanyOf 1object상위 객체에서 필수
  • additionalProperties: {}
post.source_ref.*anyOf 1any JSON value선택 / 항목—
post.source_refanyOf 2null상위 객체에서 필수—
전체 JSON Schema
{
  "$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"
        },
        "project_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"
            }
          ]
        },
        "batch_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"
            }
          ]
        },
        "source_ref": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "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",
        "project_id",
        "batch_id",
        "source_ref"
      ]
    }
  },
  "required": [
    "post"
  ]
}

오류 및 안전한 재시도

HTTP 상태와 응답 본문을 확인하세요. 400 검증 오류에는 ZodError가 포함될 수 있으며, 핸들러 오류는 error, message, code 필드를 사용합니다. 진단용 request_id 또는 x-request-id를 자격 증명 없이 보관하세요. 401/403 접근 오류는 재시도 전에 해결하고 429에는 Retry-After를 따르세요. 쓰기 결과가 불확실하거나 5xx를 반환하면 먼저 기존 결과를 읽으세요. 지원하는 작업에서만 멱등성 키를 재사용하세요. 재시도 동작은 작업마다 다르며 정확히 한 번 전송을 보장하지 않습니다.

문제 해결 안내

예제

예제는 스키마로 확인한 가상 값을 사용합니다. ID를 사용 권한이 있는 값으로, 미디어를 준비된 에셋으로, 날짜를 확인된 게시 시각으로 바꾸세요. 쓰기 제출 전에 계정 적격성을 확인하세요. 이 페이지는 API 요청을 보내지 않습니다.

서버에서 SOSOAPI_ACCESS_TOKEN에 이 작업이 허용하는 자격 증명을 설정하고 브라우저 코드에 넣지 마세요. 에이전트는 sosoapi auth login으로 브라우저 로그인하며 CLI가 자격 증명을 갱신하게 하세요.

request.json

{
  "id": "11111111-1111-4111-8111-111111111111",
  "expected_version": 1
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/retry" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// 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/retry", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "id": "11111111-1111-4111-8111-111111111111",
  "expected_version": 1
})
});
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/retry < request.json

합성 응답 예제

{
  "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",
    "project_id": null,
    "batch_id": null,
    "source_ref": null
  }
}

MCP: sosoapi_retry_scheduled_post