Schemaläggning och publicering
Hämta ordnad X-tråd
Läs en befintlig X-tråd, dess kanoniska Post-resultat, tillåtna gruppåtgärder och alla expected_versions. Åtgärden schemalägger eller publicerar inte.
POST /studio-api/x-post-threads/getKontrakt granskat: · sha256:304f090f3c014931
Översikt
Läs en befintlig X-tråd, dess kanoniska Post-resultat, tillåtna gruppåtgärder och alla expected_versions. Åtgärden schemalägger eller publicerar inte.
Ett lyckat HTTP-svar kan betyda att en begäran accepterats snarare än slutförts. Spara returnerat ID för bakgrundsarbete och kontrollera samma åtgärd tills den är klar. Ett schemalagt eller accepterat inlägg är publicerat först när plattformen bekräftar det; en klienttimeout fastställer inte resultatet.
Autentisering och behörigheter
En token får endast använda ägarens rättigheter. Varje anrop kontrollerar arbetsytemedlemskap, resursägarskap, valda arbetsytor och beviljade funktioner. Profilerna core och full ändrar vilka verktyg som visas; de ger ingen åtkomst.
Anropsfält
Obligatoriskt betyder obligatoriskt inom sitt överordnade objekt och vald gren. Ett obligatoriskt underfält gör inte ett valfritt överordnat objekt obligatoriskt. Regler och fältnamn nedan kopieras från kontraktet.
| Fält / gren | Typ / obligatoriskt | Begränsningar |
|---|---|---|
$ | objectObligatoriskt i överordnat objekt |
|
workspace_id | stringObligatoriskt i överordnat objekt |
|
id | stringObligatoriskt i överordnat objekt |
|
Fullständigt JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"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)$"
},
"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)$"
}
},
"required": [
"workspace_id",
"id"
],
"additionalProperties": false
}Svar och slutförande
HTTP-status vid framgång: 200. När åtgärden är klar: canonical per-Post terminal publication outcomes; thread acceptance is not publication.
Ett lyckat HTTP-svar kan betyda att en begäran accepterats snarare än slutförts. Spara returnerat ID för bakgrundsarbete och kontrollera samma åtgärd tills den är klar. Ett schemalagt eller accepterat inlägg är publicerat först när plattformen bekräftar det; en klienttimeout fastställer inte resultatet.
Obligatoriskt betyder obligatoriskt inom sitt överordnade objekt och vald gren. Ett obligatoriskt underfält gör inte ett valfritt överordnat objekt obligatoriskt. Regler och fältnamn nedan kopieras från kontraktet.
| Fält / gren | Typ / obligatoriskt | Begränsningar |
|---|---|---|
$ | objectObligatoriskt i överordnat objekt | — |
thread | objectObligatoriskt i överordnat objekt | — |
thread.id | stringObligatoriskt i överordnat objekt |
|
thread.workspace_id | stringObligatoriskt i överordnat objekt |
|
thread.social_account_id | stringObligatoriskt i överordnat objekt |
|
thread.idempotency_key | stringObligatoriskt i överordnat objekt |
|
thread.item_count | integerObligatoriskt i överordnat objekt |
|
thread.created_at | stringObligatoriskt i överordnat objekt | — |
thread.items | arrayObligatoriskt i överordnat objekt |
|
thread.items[] | objectValfritt / objekt | — |
thread.items[].item_id | stringObligatoriskt i överordnat objekt |
|
thread.items[].ordinal | integerObligatoriskt i överordnat objekt |
|
thread.items[].predecessor_post_id | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].predecessor_post_idanyOf 1 | stringObligatoriskt i överordnat objekt |
|
thread.items[].predecessor_post_idanyOf 2 | nullObligatoriskt i överordnat objekt | — |
thread.items[].post | objectObligatoriskt i överordnat objekt | — |
thread.items[].post.id | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.workspace_id | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.social_account_id | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.social_account_idanyOf 1 | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.social_account_idanyOf 2 | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.platform | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.destination | objectObligatoriskt i överordnat objekt | — |
thread.items[].post.destination.social_account_id | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.destination.social_account_idanyOf 1 | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.destination.social_account_idanyOf 2 | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.destination.platform | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.destination.platform_user_id | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.destination.account_label | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.caption | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.hashtags | arrayObligatoriskt i överordnat objekt | — |
thread.items[].post.hashtags[] | stringValfritt / objekt | — |
thread.items[].post.media | arrayObligatoriskt i överordnat objekt | — |
thread.items[].post.media[] | objectValfritt / objekt | — |
thread.items[].post.media[].kind | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.media[].url | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.media[].cover_url | string | nullValfritt / objekt | — |
thread.items[].post.media[].cover_urlanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.media[].cover_urlanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.media[].cover_asset_id | integer | nullValfritt / objekt | — |
thread.items[].post.media[].cover_asset_idanyOf 1 | integerValfritt / objekt |
|
thread.items[].post.media[].cover_asset_idanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.media[].asset_id | integer | nullValfritt / objekt | — |
thread.items[].post.media[].asset_idanyOf 1 | integerValfritt / objekt |
|
thread.items[].post.media[].asset_idanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.media[].mime_type | string | nullValfritt / objekt | — |
thread.items[].post.media[].mime_typeanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.media[].mime_typeanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.media[].preview_url | string | nullValfritt / objekt | Tillfällig behörig läs-URL; behåll url som beständig medieidentitet för Scheduled Post. — |
thread.items[].post.media[].preview_urlanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.media[].preview_urlanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.media[].cover_preview_url | string | nullValfritt / objekt | Tillfällig behörig läs-URL för omslag; behåll cover_url som beständig medieidentitet. — |
thread.items[].post.media[].cover_preview_urlanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.media[].cover_preview_urlanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.media[].preview_expires_at | string | nullValfritt / objekt | — |
thread.items[].post.media[].preview_expires_atanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.media[].preview_expires_atanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.link_url | string | nullValfritt / objekt | — |
thread.items[].post.link_urlanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.link_urlanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.publish_options | objectObligatoriskt i överordnat objekt | — |
thread.items[].post.publish_options.post_type | stringValfritt / objekt |
|
thread.items[].post.publish_options.location_id | stringValfritt / objekt |
|
thread.items[].post.publish_options.share_to_feed | booleanValfritt / objekt | — |
thread.items[].post.publish_options.collaborators | arrayValfritt / objekt |
|
thread.items[].post.publish_options.collaborators[] | stringValfritt / objekt |
|
thread.items[].post.publish_options.first_comment | stringValfritt / objekt |
|
thread.items[].post.publish_options.topic_tag | stringValfritt / objekt |
|
thread.items[].post.publish_options.thumb_offset_ms | integerValfritt / objekt |
|
thread.items[].post.publish_options.title | stringValfritt / objekt |
|
thread.items[].post.publish_options.youtube_privacy_status | stringValfritt / objekt |
|
thread.items[].post.publish_options.youtube_category_id | stringValfritt / objekt |
|
thread.items[].post.publish_options.youtube_contains_synthetic_media | booleanValfritt / objekt | — |
thread.items[].post.publish_options.description | stringValfritt / objekt |
|
thread.items[].post.publish_options.category_id | stringValfritt / objekt |
|
thread.items[].post.publish_options.privacy_status | stringValfritt / objekt |
|
thread.items[].post.publish_options.cancellation_mode | stringValfritt / objekt |
|
thread.items[].post.publish_options.tags | arrayValfritt / objekt | — |
thread.items[].post.publish_options.tags[] | stringValfritt / objekt | — |
thread.items[].post.publish_options.default_language | stringValfritt / objekt | — |
thread.items[].post.publish_options.localizations | objectValfritt / objekt |
|
thread.items[].post.publish_options.localizations.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.license | stringValfritt / objekt |
|
thread.items[].post.publish_options.embeddable | booleanValfritt / objekt | — |
thread.items[].post.publish_options.public_stats_viewable | booleanValfritt / objekt | — |
thread.items[].post.publish_options.self_declared_made_for_kids | booleanValfritt / objekt | — |
thread.items[].post.publish_options.contains_synthetic_media | booleanValfritt / objekt | — |
thread.items[].post.publish_options.has_paid_product_placement | booleanValfritt / objekt | — |
thread.items[].post.publish_options.recording_date | stringValfritt / objekt | — |
thread.items[].post.publish_options.notify_subscribers | booleanValfritt / objekt | — |
thread.items[].post.publish_options.thumbnail_asset_id | integerValfritt / objekt |
|
thread.items[].post.publish_options.surface_expectation | stringValfritt / objekt |
|
thread.items[].post.publish_options.brand_partner | objectValfritt / objekt |
|
thread.items[].post.publish_options.brand_partner.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.cover_asset_id | integerValfritt / objekt |
|
thread.items[].post.publish_options.audio_name | stringValfritt / objekt | — |
thread.items[].post.publish_options.trial_params | objectValfritt / objekt |
|
thread.items[].post.publish_options.trial_params.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.is_ai_generated | booleanValfritt / objekt | — |
thread.items[].post.publish_options.branded_content_sponsor_ids | arrayValfritt / objekt | — |
thread.items[].post.publish_options.branded_content_sponsor_ids[] | stringValfritt / objekt | — |
thread.items[].post.publish_options.is_paid_partnership | booleanValfritt / objekt | — |
thread.items[].post.publish_options.media_options | arrayValfritt / objekt | — |
thread.items[].post.publish_options.media_options[] | objectValfritt / objekt |
|
thread.items[].post.publish_options.media_options[].* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.reply_to_id | stringValfritt / objekt | — |
thread.items[].post.publish_options.quote_post_id | stringValfritt / objekt | — |
thread.items[].post.publish_options.repost_target_id | stringValfritt / objekt | — |
thread.items[].post.publish_options.reply_control | stringValfritt / objekt | — |
thread.items[].post.publish_options.enable_reply_approvals | booleanValfritt / objekt | — |
thread.items[].post.publish_options.link_attachment | stringValfritt / objekt |
|
thread.items[].post.publish_options.poll_attachment | objectValfritt / objekt |
|
thread.items[].post.publish_options.poll_attachment.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.gif_attachment | objectValfritt / objekt |
|
thread.items[].post.publish_options.gif_attachment.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.text_attachment | objectValfritt / objekt |
|
thread.items[].post.publish_options.text_attachment.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.text_entities | arrayValfritt / objekt | — |
thread.items[].post.publish_options.text_entities[] | objectValfritt / objekt |
|
thread.items[].post.publish_options.text_entities[].* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.is_spoiler_media | booleanValfritt / objekt | — |
thread.items[].post.publish_options.is_ghost_post | booleanValfritt / objekt | — |
thread.items[].post.publish_options.allowlisted_country_codes | arrayValfritt / objekt | — |
thread.items[].post.publish_options.allowlisted_country_codes[] | stringValfritt / objekt | — |
thread.items[].post.publish_options.crossreshare_to_ig | booleanValfritt / objekt | — |
thread.items[].post.publish_options.crossreshare_to_ig_dark_mode | booleanValfritt / objekt | — |
thread.items[].post.publish_options.auto_publish_text | booleanValfritt / objekt | — |
thread.items[].post.publish_options.publication_mode | stringValfritt / objekt |
|
thread.items[].post.publish_options.backdated_time | numberValfritt / objekt | — |
thread.items[].post.publish_options.backdated_time_granularity | stringValfritt / objekt |
|
thread.items[].post.publish_options.place | stringValfritt / objekt | — |
thread.items[].post.publish_options.feed_targeting | objectValfritt / objekt |
|
thread.items[].post.publish_options.feed_targeting.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.targeting | objectValfritt / objekt |
|
thread.items[].post.publish_options.targeting.* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.child_attachments | arrayValfritt / objekt | — |
thread.items[].post.publish_options.child_attachments[] | objectValfritt / objekt |
|
thread.items[].post.publish_options.child_attachments[].* | any JSON valueValfritt / objekt | — |
thread.items[].post.publish_options.multi_share_end_card | booleanValfritt / objekt | — |
thread.items[].post.publish_options.multi_share_optimized | booleanValfritt / objekt | — |
thread.items[].post.publish_options.unpublished_content_type | stringValfritt / objekt | — |
thread.items[].post.publish_options.no_story | booleanValfritt / objekt | — |
thread.items[].post.publish_options.crossposted_video_id | stringValfritt / objekt | — |
thread.items[].post.publish_options.spherical | booleanValfritt / objekt | — |
thread.items[].post.scheduled_at | stringObligatoriskt i överordnat objekt | — |
thread.items[].post.display_timezone | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.local_scheduled_at | string | nullValfritt / objekt | — |
thread.items[].post.local_scheduled_atanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.local_scheduled_atanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.schedule_timezone | string | nullValfritt / objekt | — |
thread.items[].post.schedule_timezoneanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.schedule_timezoneanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.schedule_dst_disambiguation | string | nullValfritt / objekt | — |
thread.items[].post.schedule_dst_disambiguationanyOf 1 | stringValfritt / objekt |
|
thread.items[].post.schedule_dst_disambiguationanyOf 2 | nullValfritt / objekt | — |
thread.items[].post.schedule_intent_state | stringValfritt / objekt |
|
thread.items[].post.expires_at | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.status | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.version | integerObligatoriskt i överordnat objekt |
|
thread.items[].post.automatic_retry_enabled | booleanObligatoriskt i överordnat objekt | — |
thread.items[].post.delete_requested_at | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.published_at | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.deleted_at | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.provider_post_id | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.permalink | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.permalinkanyOf 1 | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.permalinkanyOf 2 | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.created_at | stringObligatoriskt i överordnat objekt | — |
thread.items[].post.updated_at | stringObligatoriskt i överordnat objekt | — |
thread.items[].post.project_id | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.project_idanyOf 1 | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.project_idanyOf 2 | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.batch_id | string | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.batch_idanyOf 1 | stringObligatoriskt i överordnat objekt |
|
thread.items[].post.batch_idanyOf 2 | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.source_ref | object | nullObligatoriskt i överordnat objekt | — |
thread.items[].post.source_refanyOf 1 | objectObligatoriskt i överordnat objekt |
|
thread.items[].post.source_ref.*anyOf 1 | any JSON valueValfritt / objekt | — |
thread.items[].post.source_refanyOf 2 | nullObligatoriskt i överordnat objekt | — |
thread.items[].retry_allowed | booleanObligatoriskt i överordnat objekt | — |
thread.expected_versions | objectObligatoriskt i överordnat objekt |
|
thread.expected_versions.* | integerValfritt / objekt |
|
thread.actions | arrayObligatoriskt i överordnat objekt |
|
thread.actions[] | objectValfritt / objekt | — |
thread.actions[].action | stringObligatoriskt i överordnat objekt |
|
thread.actions[].allowed | booleanObligatoriskt i överordnat objekt | — |
thread.actions[].reason_code | stringObligatoriskt i överordnat objekt |
|
thread.actions[].message | stringObligatoriskt i överordnat objekt | — |
deduped | booleanValfritt / objekt | — |
Fullständigt JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"thread": {
"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)$"
},
"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": {
"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)$"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"item_count": {
"type": "integer",
"minimum": 2,
"maximum": 25
},
"created_at": {
"type": "string"
},
"items": {
"minItems": 2,
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"item_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)$"
},
"ordinal": {
"type": "integer",
"minimum": 1,
"maximum": 25
},
"predecessor_post_id": {
"anyOf": [
{
"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}$"
},
{
"type": "null"
}
]
},
"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": {
"type": [
"string",
"null"
]
},
"account_label": {
"type": [
"string",
"null"
]
}
},
"required": [
"social_account_id",
"platform",
"platform_user_id",
"account_label"
]
},
"caption": {
"type": [
"string",
"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",
"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))$",
"format": "date-time"
},
{
"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": {
"type": [
"string",
"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": {
"type": [
"string",
"null"
]
},
"published_at": {
"type": [
"string",
"null"
]
},
"deleted_at": {
"type": [
"string",
"null"
]
},
"provider_post_id": {
"type": [
"string",
"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"
]
},
"retry_allowed": {
"type": "boolean"
}
},
"required": [
"item_id",
"ordinal",
"predecessor_post_id",
"post",
"retry_allowed"
]
}
},
"expected_versions": {
"type": "object",
"propertyNames": {
"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}$"
},
"additionalProperties": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"actions": {
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"resume",
"cancel"
]
},
"allowed": {
"type": "boolean"
},
"reason_code": {
"type": "string",
"enum": [
"allowed",
"no_failed_items",
"resolution_required",
"retry_unavailable",
"terminal_state"
]
},
"message": {
"type": "string"
}
},
"required": [
"action",
"allowed",
"reason_code",
"message"
]
}
}
},
"required": [
"id",
"workspace_id",
"social_account_id",
"idempotency_key",
"item_count",
"created_at",
"items",
"expected_versions",
"actions"
]
},
"deduped": {
"type": "boolean"
}
},
"required": [
"thread"
]
}Fel och säkra nya försök
Kontrollera HTTP-status och svarskropp. Ett valideringsfel med 400 kan innehålla ZodError; hanterarfel använder fälten error, message och code. Spara request_id eller x-request-id för felsökning, utan inloggningsuppgifter. Åtgärda åtkomstfel med 401/403 innan du försöker igen och följ Retry-After vid 429. Om en skrivning är osäker eller returnerar 5xx, läs först det befintliga resultatet. Återanvänd en idempotensnyckel endast där det stöds; försöksbeteendet varierar mellan åtgärder och garanterar inte leverans exakt en gång.
FelsökningsguideExempel
Exemplen använder fiktiva värden som kontrollerats mot schemana. Ersätt ID:n med sådana du får använda, medier med färdiga mediefiler och datum med din bekräftade publiceringstid. Kontrollera kontots behörighet före en skrivning. Denna sida skickar inga API-anrop.
Sätt SOSOAPI_ACCESS_TOKEN på servern till en autentiseringsuppgift som åtgärden godtar och håll den borta från webbläsarkod. För en agent använder du sosoapi auth login för att logga in via webbläsaren och låter CLI förnya sina uppgifter.
request.json
{
"workspace_id": "11111111-1111-4111-8111-111111111111",
"id": "88888888-8888-4888-8888-888888888888"
}cURL
curl --request POST \
"https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/x-post-threads/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/x-post-threads/get", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
body: JSON.stringify({
"workspace_id": "11111111-1111-4111-8111-111111111111",
"id": "88888888-8888-4888-8888-888888888888"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.CLI
npx sosoapi api post /studio-api/x-post-threads/get < request.jsonSyntetiskt svarsexempel
{
"thread": {
"workspace_id": "11111111-1111-4111-8111-111111111111",
"id": "88888888-8888-4888-8888-888888888888",
"social_account_id": "22222222-2222-4222-8222-222222222222",
"idempotency_key": "example-x-thread-0001",
"item_count": 2,
"created_at": "2099-01-15T08:00:00Z",
"items": [
{
"item_id": "99999999-9999-4999-8999-999999999991",
"ordinal": 1,
"predecessor_post_id": null,
"retry_allowed": true,
"post": {
"id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa1",
"workspace_id": "11111111-1111-4111-8111-111111111111",
"social_account_id": "22222222-2222-4222-8222-222222222222",
"platform": "x",
"destination": {
"social_account_id": "22222222-2222-4222-8222-222222222222",
"platform": "x",
"platform_user_id": "fictional-x-account",
"account_label": "Fictional X account"
},
"caption": "A fictional two-part announcement.",
"hashtags": [],
"media": [],
"publish_options": {
"post_type": "TEXT"
},
"scheduled_at": "2099-01-15T09:00:00Z",
"display_timezone": "UTC",
"expires_at": null,
"status": "failed",
"version": 2,
"automatic_retry_enabled": false,
"delete_requested_at": null,
"published_at": null,
"deleted_at": null,
"provider_post_id": null,
"permalink": null,
"project_id": null,
"batch_id": null,
"source_ref": null,
"created_at": "2099-01-15T08:00:00Z",
"updated_at": "2099-01-15T08:30:00Z"
}
},
{
"item_id": "99999999-9999-4999-8999-999999999992",
"ordinal": 2,
"predecessor_post_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa1",
"retry_allowed": true,
"post": {
"id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa2",
"workspace_id": "11111111-1111-4111-8111-111111111111",
"social_account_id": "22222222-2222-4222-8222-222222222222",
"platform": "x",
"destination": {
"social_account_id": "22222222-2222-4222-8222-222222222222",
"platform": "x",
"platform_user_id": "fictional-x-account",
"account_label": "Fictional X account"
},
"caption": "The second part of this fictional announcement.",
"hashtags": [],
"media": [],
"publish_options": {
"post_type": "TEXT"
},
"scheduled_at": "2099-01-15T09:00:00Z",
"display_timezone": "UTC",
"expires_at": null,
"status": "failed",
"version": 2,
"automatic_retry_enabled": false,
"delete_requested_at": null,
"published_at": null,
"deleted_at": null,
"provider_post_id": null,
"permalink": null,
"project_id": null,
"batch_id": null,
"source_ref": null,
"created_at": "2099-01-15T08:00:00Z",
"updated_at": "2099-01-15T08:30:00Z"
}
}
],
"expected_versions": {
"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa1": 2,
"aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaa2": 2
},
"actions": [
{
"action": "resume",
"allowed": true,
"reason_code": "allowed",
"message": "This fictional preflight failure is safe to resume."
},
{
"action": "cancel",
"allowed": true,
"reason_code": "allowed",
"message": "Cancel the unpublished items in this fictional thread."
}
]
}
}