MCP tool
Status Threads CSV
sosoapi_status_threads_csvRead durable per-row draft receipts using the original Threads CSV, import identity, selection and preview digest. This does not create or resume work.
Read as MarkdownProfiles and transports
Profiles: full · Transports: stdio, http
Choose core or full to control which tools your client sees; this does not change its permissions. Local file upload requires stdio and is unavailable over HTTP. Set SOSOAPI_OUTPUT_SCHEMAS=1 to include output schemas in discovery. Tools return structured results with or without that setting.
Permissions and side effects
Annotations help clients describe a tool. Each call still checks the user’s authentication, role, resource access and capability grants.
{
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true
}- /studio-api/threads-csv/status: agent:operate · read-only CSV validation or existing per-row draft receipts; no aggregate import job or automatic submission
Input fields
Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.
| Field / branch | Type / required | Constraints |
|---|---|---|
$ | objectRequired in parent |
|
workspace_id | stringRequired in parent |
|
social_account_id | stringRequired in parent |
|
import_id | stringRequired in parent |
|
csv | stringRequired in parent |
|
row_numbers | arrayRequired in parent |
|
row_numbers[] | integerOptional / item |
|
preview_digest | stringRequired in parent |
|
Complete JSON Schema
{
"type": "object",
"properties": {
"workspace_id": {
"type": "string",
"format": "uuid"
},
"social_account_id": {
"type": "string",
"format": "uuid"
},
"import_id": {
"type": "string",
"format": "uuid"
},
"csv": {
"type": "string",
"minLength": 1,
"maxLength": 200000
},
"row_numbers": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"preview_digest": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
}
},
"required": [
"workspace_id",
"social_account_id",
"import_id",
"csv",
"row_numbers",
"preview_digest"
],
"additionalProperties": false
}Structured output
This schema describes structuredContent in a successful tool result. The MCP response also includes content and may set isError when a call fails. For publishing, read the post’s final result rather than treating an accepted request or text response as confirmation. The linked API operation explains permissions and retry rules.
Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.
| Field / branch | Type / required | Constraints |
|---|---|---|
$ | objectRequired in parent |
|
contract_version | stringRequired in parent |
|
workspace_id | stringRequired in parent |
|
social_account_id | stringRequired in parent |
|
import_id | stringRequired in parent |
|
preview_digest | stringRequired in parent |
|
selected_row_numbers | arrayRequired in parent |
|
selected_row_numbers[] | integerOptional / item |
|
rows | arrayRequired in parent |
|
rows[] | objectOptional / item |
|
rows[].row_number | integerRequired in parent |
|
rows[].row_id | stringRequired in parent |
|
rows[].draft_id | stringRequired in parent |
|
rows[].save_mutation_id | stringRequired in parent |
|
rows[].submission_id | stringRequired in parent |
|
rows[].caption | stringRequired in parent |
|
rows[].scheduled_at | string | nullRequired in parent | — |
rows[].scheduled_atanyOf 1 | stringRequired in parent |
|
rows[].scheduled_atanyOf 2 | nullRequired in parent | — |
rows[].display_timezone | stringRequired in parent |
|
rows[].asset_ids | arrayRequired in parent |
|
rows[].asset_ids[] | stringOptional / item |
|
rows[].topic_tag | string | nullRequired in parent | — |
rows[].topic_taganyOf 1 | stringRequired in parent |
|
rows[].topic_taganyOf 2 | nullRequired in parent | — |
rows[].post_type | string | nullRequired in parent | — |
rows[].post_typeanyOf 1 | stringRequired in parent |
|
rows[].post_typeanyOf 2 | nullRequired in parent | — |
rows[].status | stringRequired in parent |
|
rows[].errors | arrayRequired in parent |
|
rows[].errors[] | objectOptional / item |
|
rows[].errors[].code | stringRequired in parent |
|
rows[].errors[].message | stringRequired in parent |
|
rows[].duplicate_of | integer | nullRequired in parent | — |
rows[].duplicate_ofanyOf 1 | integerRequired in parent |
|
rows[].duplicate_ofanyOf 2 | nullRequired in parent | — |
rows[].draft_revision | integer | nullRequired in parent | — |
rows[].draft_revisionanyOf 1 | integerRequired in parent |
|
rows[].draft_revisionanyOf 2 | nullRequired in parent | — |
rows[].post | object | nullRequired in parent | — |
rows[].postanyOf 1 | objectRequired in parent |
|
rows[].post.idanyOf 1 | stringRequired in parent |
|
rows[].post.workspace_idanyOf 1 | stringRequired in parent |
|
rows[].post.social_account_idanyOf 1 | string | nullRequired in parent | — |
rows[].post.social_account_idanyOf 1 / anyOf 1 | stringRequired in parent |
|
rows[].post.social_account_idanyOf 1 / anyOf 2 | nullRequired in parent | — |
rows[].post.platformanyOf 1 | stringRequired in parent |
|
rows[].post.destinationanyOf 1 | objectRequired in parent |
|
rows[].post.destination.social_account_idanyOf 1 | string | nullRequired in parent | — |
rows[].post.destination.social_account_idanyOf 1 / anyOf 1 | stringRequired in parent |
|
rows[].post.destination.social_account_idanyOf 1 / anyOf 2 | nullRequired in parent | — |
rows[].post.destination.platformanyOf 1 | stringRequired in parent |
|
rows[].post.destination.platform_user_idanyOf 1 | string | nullRequired in parent | — |
rows[].post.destination.account_labelanyOf 1 | string | nullRequired in parent | — |
rows[].post.captionanyOf 1 | string | nullRequired in parent | — |
rows[].post.hashtagsanyOf 1 | arrayRequired in parent | — |
rows[].post.hashtags[]anyOf 1 | stringOptional / item | — |
rows[].post.mediaanyOf 1 | arrayRequired in parent | — |
rows[].post.media[]anyOf 1 | objectOptional / item |
|
rows[].post.media[].kindanyOf 1 | stringRequired in parent |
|
rows[].post.media[].urlanyOf 1 | stringRequired in parent |
|
rows[].post.media[].cover_urlanyOf 1 | string | nullOptional / item | — |
rows[].post.media[].cover_urlanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.media[].cover_urlanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.media[].cover_asset_idanyOf 1 | integer | nullOptional / item | — |
rows[].post.media[].cover_asset_idanyOf 1 / anyOf 1 | integerOptional / item |
|
rows[].post.media[].cover_asset_idanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.media[].asset_idanyOf 1 | integer | nullOptional / item | — |
rows[].post.media[].asset_idanyOf 1 / anyOf 1 | integerOptional / item |
|
rows[].post.media[].asset_idanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.media[].mime_typeanyOf 1 | string | nullOptional / item | — |
rows[].post.media[].mime_typeanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.media[].mime_typeanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.media[].preview_urlanyOf 1 | string | nullOptional / item | Temporary authorized read URL; keep url as persisted Scheduled Post media identity. — |
rows[].post.media[].preview_urlanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.media[].preview_urlanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.media[].cover_preview_urlanyOf 1 | string | nullOptional / item | Temporary authorized cover read URL; keep cover_url as persisted media identity. — |
rows[].post.media[].cover_preview_urlanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.media[].cover_preview_urlanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.media[].preview_expires_atanyOf 1 | string | nullOptional / item | — |
rows[].post.media[].preview_expires_atanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.media[].preview_expires_atanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.link_urlanyOf 1 | string | nullOptional / item | — |
rows[].post.link_urlanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.link_urlanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.publish_optionsanyOf 1 | objectRequired in parent |
|
rows[].post.publish_options.post_typeanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.location_idanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.share_to_feedanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.collaboratorsanyOf 1 | arrayOptional / item |
|
rows[].post.publish_options.collaborators[]anyOf 1 | stringOptional / item |
|
rows[].post.publish_options.first_commentanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.topic_taganyOf 1 | stringOptional / item |
|
rows[].post.publish_options.thumb_offset_msanyOf 1 | integerOptional / item |
|
rows[].post.publish_options.titleanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.youtube_privacy_statusanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.youtube_category_idanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.youtube_contains_synthetic_mediaanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.descriptionanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.category_idanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.privacy_statusanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.cancellation_modeanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.tagsanyOf 1 | arrayOptional / item | — |
rows[].post.publish_options.tags[]anyOf 1 | stringOptional / item | — |
rows[].post.publish_options.default_languageanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.localizationsanyOf 1 | objectOptional / item |
|
rows[].post.publish_options.localizations.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.licenseanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.embeddableanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.public_stats_viewableanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.self_declared_made_for_kidsanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.contains_synthetic_mediaanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.has_paid_product_placementanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.recording_dateanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.notify_subscribersanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.thumbnail_asset_idanyOf 1 | integerOptional / item |
|
rows[].post.publish_options.surface_expectationanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.brand_partneranyOf 1 | objectOptional / item |
|
rows[].post.publish_options.brand_partner.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.cover_asset_idanyOf 1 | integerOptional / item |
|
rows[].post.publish_options.audio_nameanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.trial_paramsanyOf 1 | objectOptional / item |
|
rows[].post.publish_options.trial_params.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.is_ai_generatedanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.branded_content_sponsor_idsanyOf 1 | arrayOptional / item | — |
rows[].post.publish_options.branded_content_sponsor_ids[]anyOf 1 | stringOptional / item | — |
rows[].post.publish_options.is_paid_partnershipanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.media_optionsanyOf 1 | arrayOptional / item | — |
rows[].post.publish_options.media_options[]anyOf 1 | objectOptional / item |
|
rows[].post.publish_options.media_options[].*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.reply_to_idanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.quote_post_idanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.repost_target_idanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.reply_controlanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.enable_reply_approvalsanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.link_attachmentanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.poll_attachmentanyOf 1 | objectOptional / item |
|
rows[].post.publish_options.poll_attachment.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.gif_attachmentanyOf 1 | objectOptional / item |
|
rows[].post.publish_options.gif_attachment.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.text_attachmentanyOf 1 | objectOptional / item |
|
rows[].post.publish_options.text_attachment.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.text_entitiesanyOf 1 | arrayOptional / item | — |
rows[].post.publish_options.text_entities[]anyOf 1 | objectOptional / item |
|
rows[].post.publish_options.text_entities[].*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.is_spoiler_mediaanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.is_ghost_postanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.allowlisted_country_codesanyOf 1 | arrayOptional / item | — |
rows[].post.publish_options.allowlisted_country_codes[]anyOf 1 | stringOptional / item | — |
rows[].post.publish_options.crossreshare_to_iganyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.crossreshare_to_ig_dark_modeanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.auto_publish_textanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.publication_modeanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.backdated_timeanyOf 1 | numberOptional / item | — |
rows[].post.publish_options.backdated_time_granularityanyOf 1 | stringOptional / item |
|
rows[].post.publish_options.placeanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.feed_targetinganyOf 1 | objectOptional / item |
|
rows[].post.publish_options.feed_targeting.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.targetinganyOf 1 | objectOptional / item |
|
rows[].post.publish_options.targeting.*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.child_attachmentsanyOf 1 | arrayOptional / item | — |
rows[].post.publish_options.child_attachments[]anyOf 1 | objectOptional / item |
|
rows[].post.publish_options.child_attachments[].*anyOf 1 | any JSON valueOptional / item | — |
rows[].post.publish_options.multi_share_end_cardanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.multi_share_optimizedanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.unpublished_content_typeanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.no_storyanyOf 1 | booleanOptional / item | — |
rows[].post.publish_options.crossposted_video_idanyOf 1 | stringOptional / item | — |
rows[].post.publish_options.sphericalanyOf 1 | booleanOptional / item | — |
rows[].post.scheduled_atanyOf 1 | stringRequired in parent | — |
rows[].post.display_timezoneanyOf 1 | stringRequired in parent |
|
rows[].post.local_scheduled_atanyOf 1 | string | nullOptional / item | — |
rows[].post.local_scheduled_atanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.local_scheduled_atanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.schedule_timezoneanyOf 1 | string | nullOptional / item | — |
rows[].post.schedule_timezoneanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.schedule_timezoneanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.schedule_dst_disambiguationanyOf 1 | string | nullOptional / item | — |
rows[].post.schedule_dst_disambiguationanyOf 1 / anyOf 1 | stringOptional / item |
|
rows[].post.schedule_dst_disambiguationanyOf 1 / anyOf 2 | nullOptional / item | — |
rows[].post.schedule_intent_stateanyOf 1 | stringOptional / item |
|
rows[].post.expires_atanyOf 1 | string | nullRequired in parent | — |
rows[].post.statusanyOf 1 | stringRequired in parent |
|
rows[].post.versionanyOf 1 | integerRequired in parent |
|
rows[].post.automatic_retry_enabledanyOf 1 | booleanRequired in parent | — |
rows[].post.delete_requested_atanyOf 1 | string | nullRequired in parent | — |
rows[].post.deletionanyOf 1 | objectOptional / item |
|
rows[].post.deletion.stateanyOf 1 | stringRequired in parent |
|
rows[].post.deletion.retry_atanyOf 1 | string | nullRequired in parent | — |
rows[].post.deletion.retry_atanyOf 1 / anyOf 1 | stringRequired in parent |
|
rows[].post.deletion.retry_atanyOf 1 / anyOf 2 | nullRequired in parent | — |
rows[].post.published_atanyOf 1 | string | nullRequired in parent | — |
rows[].post.deleted_atanyOf 1 | string | nullRequired in parent | — |
rows[].post.provider_post_idanyOf 1 | string | nullRequired in parent | — |
rows[].post.permalinkanyOf 1 | string | nullRequired in parent | — |
rows[].post.permalinkanyOf 1 / anyOf 1 | stringRequired in parent |
|
rows[].post.permalinkanyOf 1 / anyOf 2 | nullRequired in parent | — |
rows[].post.created_atanyOf 1 | stringRequired in parent | — |
rows[].post.updated_atanyOf 1 | stringRequired in parent | — |
rows[].post.project_idanyOf 1 | string | nullRequired in parent | — |
rows[].post.project_idanyOf 1 / anyOf 1 | stringRequired in parent |
|
rows[].post.project_idanyOf 1 / anyOf 2 | nullRequired in parent | — |
rows[].post.batch_idanyOf 1 | string | nullRequired in parent | — |
rows[].post.batch_idanyOf 1 / anyOf 1 | stringRequired in parent |
|
rows[].post.batch_idanyOf 1 / anyOf 2 | nullRequired in parent | — |
rows[].post.source_refanyOf 1 | object | nullRequired in parent | — |
rows[].post.source_refanyOf 1 / anyOf 1 | objectRequired in parent |
|
rows[].post.source_ref.*anyOf 1 / anyOf 1 | any JSON valueOptional / item | — |
rows[].post.source_refanyOf 1 / anyOf 2 | nullRequired in parent | — |
rows[].postanyOf 2 | nullRequired in parent | — |
import_errors | arrayRequired in parent |
|
import_errors[] | objectOptional / item |
|
import_errors[].code | stringRequired in parent |
|
import_errors[].message | stringRequired in parent |
|
counts | objectRequired in parent |
|
counts.total | integerRequired in parent |
|
counts.ready | integerRequired in parent |
|
counts.invalid | integerRequired in parent |
|
counts.accepted | integerRequired in parent |
|
counts.not_accepted | integerRequired in parent |
|
counts.uncertain | integerRequired in parent |
|
counts.not_attempted | integerRequired in parent |
|
complete | booleanRequired in parent | — |
Complete JSON Schema
{
"type": "object",
"properties": {
"contract_version": {
"type": "string",
"const": "threads-csv/v1"
},
"workspace_id": {
"type": "string",
"format": "uuid"
},
"social_account_id": {
"type": "string",
"format": "uuid"
},
"import_id": {
"type": "string",
"format": "uuid"
},
"preview_digest": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"selected_row_numbers": {
"maxItems": 50,
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"rows": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"row_number": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"row_id": {
"type": "string",
"format": "uuid"
},
"draft_id": {
"type": "string",
"format": "uuid"
},
"save_mutation_id": {
"type": "string",
"format": "uuid"
},
"submission_id": {
"type": "string",
"format": "uuid"
},
"caption": {
"type": "string",
"maxLength": 5000
},
"scheduled_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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"display_timezone": {
"type": "string",
"maxLength": 128
},
"asset_ids": {
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"pattern": "^[1-9]\\d{0,15}$"
}
},
"topic_tag": {
"anyOf": [
{
"type": "string",
"maxLength": 50
},
{
"type": "null"
}
]
},
"post_type": {
"anyOf": [
{
"type": "string",
"enum": [
"TEXT",
"IMAGE",
"VIDEO",
"CAROUSEL"
]
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"ready",
"invalid",
"accepted",
"not_accepted",
"uncertain",
"not_attempted"
]
},
"errors": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"maxLength": 80
},
"message": {
"type": "string",
"maxLength": 300
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"duplicate_of": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 50
},
{
"type": "null"
}
]
},
"draft_revision": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"post": {
"anyOf": [
{
"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"
},
"social_account_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
]
},
"platform": {
"type": "string",
"enum": [
"instagram",
"threads",
"facebook",
"youtube",
"x"
]
},
"destination": {
"type": "object",
"properties": {
"social_account_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"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"
],
"additionalProperties": false
},
"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"
],
"additionalProperties": false
}
},
"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"
}
},
"additionalProperties": false
},
"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"
]
},
"deletion": {
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"pending",
"retry_scheduled",
"failed",
"unconfirmed",
"confirmed",
"unpublished_cancelled"
]
},
"retry_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": [
"state",
"retry_at"
],
"additionalProperties": false
},
"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"
},
{
"type": "null"
}
]
},
"batch_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"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"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"row_number",
"row_id",
"draft_id",
"save_mutation_id",
"submission_id",
"caption",
"scheduled_at",
"display_timezone",
"asset_ids",
"topic_tag",
"post_type",
"status",
"errors",
"duplicate_of",
"draft_revision",
"post"
],
"additionalProperties": false
}
},
"import_errors": {
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"maxLength": 80
},
"message": {
"type": "string",
"maxLength": 300
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"ready": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"invalid": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"accepted": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"not_accepted": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"uncertain": {
"type": "integer",
"minimum": 0,
"maximum": 50
},
"not_attempted": {
"type": "integer",
"minimum": 0,
"maximum": 50
}
},
"required": [
"total",
"ready",
"invalid",
"accepted",
"not_accepted",
"uncertain",
"not_attempted"
],
"additionalProperties": false
},
"complete": {
"type": "boolean"
}
},
"required": [
"contract_version",
"workspace_id",
"social_account_id",
"import_id",
"preview_digest",
"selected_row_numbers",
"rows",
"import_errors",
"counts",
"complete"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Example tool call
These examples use fictional values checked against the schemas. Replace the IDs with ones you are authorized to use, the media with ready assets and the dates with your confirmed publishing time. Check the account’s eligibility before submitting a write. This page sends no API requests.
{
"name": "sosoapi_status_threads_csv",
"arguments": {
"workspace_id": "11111111-1111-4111-8111-111111111111",
"social_account_id": "22222222-2222-4222-8222-222222222222",
"import_id": "55555555-5555-4555-8555-555555555555",
"csv": "caption,scheduled_at,display_timezone,asset_ids,topic_tag\nA fictional announcement.,2099-01-15T09:00:00Z,UTC,,Cooking",
"row_numbers": [
1
],
"preview_digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}structuredContent
{
"workspace_id": "11111111-1111-4111-8111-111111111111",
"social_account_id": "22222222-2222-4222-8222-222222222222",
"import_id": "55555555-5555-4555-8555-555555555555",
"contract_version": "threads-csv/v1",
"preview_digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"selected_row_numbers": [
1
],
"rows": [
{
"row_number": 1,
"row_id": "80000000-0000-4000-8000-000000000004",
"draft_id": "70000000-0000-4000-8000-000000000004",
"save_mutation_id": "60000000-0000-4000-8000-000000000004",
"submission_id": "60000000-0000-4000-8000-000000000005",
"caption": "A fictional announcement.",
"scheduled_at": "2099-01-15T09:00:00Z",
"display_timezone": "UTC",
"asset_ids": [],
"topic_tag": "Cooking",
"post_type": "TEXT",
"status": "accepted",
"errors": [],
"duplicate_of": null,
"draft_revision": 3,
"post": {
"id": "90000000-0000-4000-8000-000000000004",
"workspace_id": "11111111-1111-4111-8111-111111111111",
"social_account_id": "22222222-2222-4222-8222-222222222222",
"platform": "threads",
"destination": {
"social_account_id": "22222222-2222-4222-8222-222222222222",
"platform": "threads",
"platform_user_id": "12345",
"account_label": "Fictional Threads account"
},
"caption": "A fictional announcement.",
"hashtags": [],
"media": [],
"publish_options": {
"post_type": "TEXT",
"topic_tag": "Cooking"
},
"scheduled_at": "2099-01-15T09:00:00Z",
"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,
"project_id": null,
"batch_id": "50000000-0000-4000-8000-000000000004",
"source_ref": null,
"created_at": "2099-01-14T09:00:00Z",
"updated_at": "2099-01-14T09:00:00Z"
}
}
],
"import_errors": [],
"counts": {
"total": 1,
"ready": 0,
"invalid": 0,
"accepted": 1,
"not_accepted": 0,
"uncertain": 0,
"not_attempted": 0
},
"complete": true
}