Contract
{
"type": "object",
"required": [
"post_id"
],
"properties": {
"post_id": {
"type": "string",
"examples": [
"3349029093483693129"
],
"description": "Post ID"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"node": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The thread's id -- matches the queried post_id."
},
"thread_type": {
"type": "string",
"description": "e.g. 'thread' on the one real post observed."
},
"thread_items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"post": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A composite id, `<post_id>_<author_user_id>` on the one real post observed."
},
"pk": {
"type": "string",
"description": "The post's numeric id, matching the queried post_id."
},
"code": {
"type": "string",
"description": "The post's short shareable code."
},
"fbid": {
"type": [
"string",
"null"
],
"description": "An internal cross-platform numeric id. Not a phone number -- a long digit string."
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The author's numeric Threads user id."
},
"username": {
"type": "string",
"description": "The author's public @handle."
},
"is_verified": {
"type": "boolean",
"description": "The author's public verified-badge status."
},
"profile_pic_url": {
"type": [
"string",
"null"
],
"description": "The author's public avatar image URL. Value withheld (stripped to `null`) in this tool's output -- only whether an avatar is set is observable, not the image itself."
},
"transparency_label": {
"type": [
"string",
"null"
]
},
"transparency_product": {
"type": [
"string",
"null"
]
},
"transparency_product_enabled": {
"type": "boolean"
},
"eligible_for_text_app_activation_badge": {
"type": "boolean"
},
"hide_text_app_activation_badge_on_text_app": {
"type": "boolean"
}
},
"description": "The post's own author -- the exact subject this tool exists to surface.",
"additionalProperties": true
},
"audio": {
"type": [
"object",
"null"
],
"description": "Attached audio track info, when present. `null` on the one real post observed."
},
"caption": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The post's full caption text."
},
"has_translation": {
"type": [
"boolean",
"null"
]
}
},
"description": "The post's own caption.",
"additionalProperties": true
},
"taken_at": {
"type": "number",
"description": "Unix seconds, the post's publish time."
},
"has_audio": {
"type": "boolean"
},
"metaPlace": {
"type": [
"string",
"null"
],
"description": "A tagged place, when set."
},
"is_fb_only": {
"type": [
"boolean",
"null"
]
},
"like_count": {
"type": "number"
},
"media_type": {
"type": "number",
"description": "e.g. 2 (image/video) on the one real post observed."
},
"meta_place": {
"type": [
"string",
"null"
],
"description": "The same tagged-place field under the vendor's snake_case key; both observed `null`."
},
"caption_add_on": {
"type": [
"string",
"null"
]
},
"carousel_media": {
"type": [
"array",
"null"
],
"description": "Present when the post has multiple attached media items. `null` (single or no media) on the one real post observed -- a populated shape is UNCONFIRMED."
},
"original_width": {
"type": "number"
},
"video_versions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "The video URL. Value withheld (stripped to `null`) in this tool's output -- only whether the post has an attached video is observable, not the video itself."
},
"type": {
"type": "number",
"description": "The encoding variant's numeric type code."
}
},
"additionalProperties": true
},
"description": "Present when the post has an attached video, at several encodings."
},
"image_versions2": {
"type": "object",
"properties": {
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "The image URL. Value withheld (stripped to `null`) in this tool's output -- only whether the post has an attached image is observable, not the image itself."
},
"width": {
"type": "number"
},
"height": {
"type": "number"
}
},
"additionalProperties": true
},
"description": "The post's own attached image, at several resolutions."
}
},
"additionalProperties": true
},
"original_height": {
"type": "number"
},
"giphy_media_info": {
"type": [
"object",
"null"
],
"description": "Attached GIF info, when present. `null` on the one real post observed."
},
"is_internal_only": {
"type": [
"boolean",
"null"
]
},
"caption_is_edited": {
"type": "boolean"
},
"media_overlay_info": {
"type": [
"object",
"null"
],
"description": "Attached media overlay (e.g. sticker) info, when present."
},
"text_post_app_info": {
"type": "object",
"properties": {
"is_reply": {
"type": "boolean"
},
"can_reply": {
"type": "boolean"
},
"hush_info": {
"type": [
"object",
"null"
],
"description": "Comment-hiding configuration, when set."
},
"share_info": {
"type": "object",
"properties": {
"quoted_post": {
"type": "null",
"description": "Observed as `null` -- UNCONFIRMED shape when this post quotes another post."
},
"reposted_post": {
"type": "null",
"description": "Observed as `null` -- UNCONFIRMED shape when this post is a repost."
},
"can_quote_post": {
"type": "boolean"
},
"is_reposted_by_viewer": {
"type": "boolean"
},
"quoted_attachment_post": {
"type": "null",
"description": "Observed as `null` on the one real post calibrated -- UNCONFIRMED shape when this post quotes another attachment."
},
"quoted_attachment_post_unavailable": {
"type": "boolean"
},
"quoted_attachment_author_attribution_allowed": {
"type": "boolean"
}
},
"additionalProperties": true
},
"quote_count": {
"type": "number"
},
"repost_count": {
"type": "number"
},
"reply_control": {
"type": "string",
"description": "e.g. 'everyone' on the one real post observed."
},
"reshare_count": {
"type": [
"number",
"null"
]
},
"fediverse_info": {
"type": [
"object",
"null"
],
"description": "Fediverse (e.g. Mastodon) bridging info, when present."
},
"reply_to_author": {
"type": "null",
"description": "Observed as `null` on the one real post calibrated -- UNCONFIRMED what a populated value holds when this post is a reply."
},
"delete_timestamp": {
"type": [
"number",
"null"
]
},
"pinned_post_info": {
"type": "object",
"properties": {
"is_pinned_to_profile": {
"type": "boolean"
},
"is_pinned_to_parent_post": {
"type": "boolean"
}
},
"additionalProperties": true
},
"can_private_reply": {
"type": "boolean"
},
"direct_reply_count": {
"type": "number"
},
"is_post_unavailable": {
"type": "boolean"
},
"linked_inline_media": {
"type": [
"object",
"null"
]
},
"related_trends_info": {
"type": [
"object",
"null"
]
},
"private_reply_partner": {
"type": "null",
"description": "Observed as `null` on the one real post calibrated -- UNCONFIRMED what a populated value holds (possibly a specific user this reply is restricted to)."
},
"link_preview_attachment": {
"type": [
"object",
"null"
],
"description": "A link preview card, when the post has one attached."
},
"post_unavailable_reason": {
"type": [
"string",
"null"
]
},
"special_effects_enabled_str": {
"type": "string",
"description": "Empty string observed."
},
"search_trend_info_from_link_preview": {
"type": [
"object",
"null"
]
}
},
"description": "Post-app-specific fields: reply/share controls and engagement counters. This tool leaves out the per-fragment breakdown of the caption's own text (the raw response's `text_fragments`) -- `caption.text` above already carries the full text, and the fragment-level fields include a URL-shaped value that must be withheld from at least one fragment kind, which would leave a confusing partial structure if shipped.",
"additionalProperties": true
},
"transcription_data": {
"type": [
"object",
"null"
],
"description": "Audio/video transcription, when available."
},
"is_paid_partnership": {
"type": [
"boolean",
"null"
],
"description": "Whether the post is flagged as branded/paid content."
},
"accessibility_caption": {
"type": [
"string",
"null"
],
"description": "Alt text for the post's media, when the author set one."
},
"sharing_friction_info": {
"type": "object",
"properties": {
"sharing_friction_payload": {
"type": [
"string",
"null"
]
},
"should_have_sharing_friction": {
"type": "boolean"
}
},
"additionalProperties": true
},
"gen_ai_detection_method": {
"type": [
"string",
"null"
],
"description": "How this post's media was flagged as AI-generated, when it was."
},
"like_and_view_counts_disabled": {
"type": "boolean"
}
},
"description": "The post's own public data.",
"additionalProperties": true
},
"line_type": {
"type": "string",
"description": "e.g. 'none' on the one real post observed."
},
"should_show_ephemeral_post_timer": {
"type": "null",
"description": "Observed as `null` on the one real post calibrated. Other values are UNCONFIRMED -- a populated shape was never observed."
}
},
"additionalProperties": true
},
"description": "One entry per post in the thread this endpoint returned. Only ever held ONE entry (the queried post itself) on the one real post calibrated -- a thread with attached replies in the same array was never observed."
}
},
"description": "The requested post's own thread container.",
"additionalProperties": true
}
},
"description": "The post record, as returned at routing.responseResultPath ($.output). Shapes to an empty object `{}` when the given `post_id` does not resolve to an existing post -- confirmed against the `invalid-post-id` fixture, which still billed the normal per-call price.",
"additionalProperties": true
}Pricing
Every real charge, itemised. A model that quietly omits one is a slow financial leak, so nothing here is rolled up, and a charge that only applies to some inputs says so rather than being added in.
Prices in this catalog are the provider's own list price, not your bill: Omnial MCP charges provider cost plus a platform markup on top, so what you are charged is higher than the figure shown. For the exact amount a specific call will cost, run omnial_execute with dry_run: true; that number includes the markup and is what we hold while the call runs. It is a quote, not a cap on the charge.
| Charge | Rate |
|---|---|
Per call Flat, regardless of what comes back | $0.004095 |
- Cost basis
- Not recorded
This tool's catalog entry does not record how its final bill is determined, so we will not tell you whether its cost is fixed before the call or reported by the provider afterwards. Either way what is held is a quote rather than a cap: you are charged what the call actually costs, bounded at 2x the quote.
- Updated
- Sep 23, 2026
