---
title: "Send message — estimate"
method: POST
path: "/v1/social/chats/{chat_id}/messages/estimate"
tags: ["Direct Messages"]
---

# Send message — estimate

`POST /v1/social/chats/{chat_id}/messages/estimate`

## Request

- Base URL: `https://apihub.co.il`
- URL: `https://apihub.co.il/v1/social/chats/{chat_id}/messages/estimate`
- Auth: HTTP bearer

Price the request without executing it. Same body as `POST /v1/social/chats/{chat_id}/messages`.

## Path parameters

- `chat_id` string, required: Chat ID — accepts the Postproxy hashid or the platform's external_conversation_id

## Request body

- object: Payload for sending an outbound message. Each send accepts either text (body) or a single attachment (media), never both.
  - `tag` 'HUMAN_AGENT': Message tag for sending outside the 24-hour window. Facebook and Instagram only — ignored on Telegram. Extends the reply window to 7 days from the participant's last inbound message; for a human resolving the participant's own inquiry only, never promotional content.
  - `body` string: Message text. Required when media is empty. Capped at 220 characters when buttons are present.
  - `card` object: Extra fields for the card carrying buttons — renders a richer, product-style card. Requires buttons.
    - `subtitle` string: Capped at 220 characters
    - `image_url` string: Must be an https:// URL
    - `default_action` object: Action when the card itself is tapped
      - `url` string: Must be an https:// URL
      - `type` 'web_url'
  - `media` unknown[]: A single media attachment. Accepts the same shapes as the Posts API — a multipart upload, a public URL, a base64 data URI, or a base64 hash. Currently one attachment per send (Meta Send API limit); passing more returns 422. Not supported on Bluesky (422).
    - unknown
  - `buttons` object[]: Facebook and Instagram only. Up to 3 buttons attached to the message. Requires body (capped at 220 characters); cannot be combined with media.
    - `url` string: Required for web_url buttons, must be an https:// URL
    - `type` 'web_url' | 'postback', required
    - `title` string, required: Required, 20 characters or fewer
    - `payload` string: Required for postback buttons, 1000 characters or fewer
  - `reply_markup` object: Telegram only. Inline keyboard (inline_keyboard), custom reply keyboard (keyboard, with one_time_keyboard / resize_keyboard), force_reply, or remove-keyboard payload — passed through to Telegram unchanged.
  - `quick_replies` object[]: Facebook and Instagram only. Up to 13 tappable chips shown above the participant's composer. On Instagram, delivered only on a plain-text message (not combinable with media or buttons).
    - `title` string, required: Required, 20 characters or fewer
    - `payload` string, required: Required, 1000 characters or fewer
    - `content_type` 'text': Optional; only "text" is accepted — Messenger's user_phone_number / user_email chips are not supported
  - `reply_to_external_id` string: Telegram only. Platform message_id to thread the reply under.

## Response `200`

Estimate

- Estimate
  - `operation` string
  - `estimated_credits` number
  - `credits_to_reserve` number
  - `estimated_usage` object
  - `note` string, nullable
  - `balance` object
    - `available` number
  - `sufficient` boolean

---

[API](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai.md) · [All operations](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/llms.txt) · [OpenAPI document](https://skmtc.dev/apihub/apis/apihub-one-api-for-chat-image-video-ai/revisions/a8caa42835ce?raw)
