> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zixflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Whatsapp Image Message

You can send messages only if the user session is already active; otherwise, the messages will fail. We recommend sending a approved template message the first time you contact users. Once the session is open, you can send unlimited messages via these APIs. For more info [click here](https://help.zixflow.com/en/articles/65-what-is-conversation-based-pricing)

#### Body

<ParamField body="to" type="string" required placeholder="Enter phone number">
  Specifies the recipient's phone number in international format (e.g.,
  "1xxxxxxxxxx").
</ParamField>

<ParamField body="phoneId" type="string" required placeholder="Enter phone ID (Not Phone Number)">
  This is the unique identifier associated with the sender's phone number given
  by WhatsApp. Find the Phone ID on the Zixflow WhatsApp Settings page next to
  the number. [Whatsapp
  Settings](https://app.zixflow.com/campaign/settings/whatsapp)
</ParamField>

<ParamField body="type" type="string" required placeholder="Enter Message Type" initialValue="image" default="image">
  To send image messages keep message type as "image"
</ParamField>

<ParamField body="image" type="object" required>
  A Image Object consists of the following fields and formatting options:

  <Expandable title="image" defaultOpen="true">
    <ParamField body="link" type="string" required>
      The protocol and URL of the media to be sent. Use only with HTTP/HTTPS URLs.
    </ParamField>

    <ParamField body="caption" type="string">
      Optional.

      Describes the specified image, document, or video. Do not use it with audio or sticker media.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="source" type="string" placeholder="Enter Source Type" initialValue="API" default="API">
  If the "linkWithRecord" is set to true, the source from which the WhatsApp message is sent should be mentioned; otherwise, it defaults to API.
</ParamField>

<ParamField body="linkWithRecord" type="boolean" placeholder="Enter true or false">
  Specify whether to associate the current message with a record and display it in the inbox. Set it to "true" for linking with a record; otherwise, it defaults to "false."
</ParamField>

<ParamField body="reportURL" type="string" placeholder="Enter report URL">
  (Optional) Specify the URL where the user's report and deliveries should be
  delivered.
</ParamField>

<ParamField body="submissionStatus" type="boolean" placeholder="Enter true or false">
  Indicates whether to wait for the submission status. Set it to "true" if you
  want to wait for the submission status; otherwise, it defaults to "false."
</ParamField>

#### Response

<ResponseField name="status" type="boolean">
  Indicates whether the call was successful. true if successful, false if not.
</ResponseField>

<ResponseField name="message" type="string">
  success or error response message
</ResponseField>

<ResponseExample>
  ```json 200-Success theme={null}
  {
    "status": true,
    "message": "Message sent successfully"
  }
  ```

  ```json 400-Bad Request theme={null}
  {
    "status": false,
    "message": "Invalid data Provided"
  }
  ```

  ```json 401-Unauthorised theme={null}
  {
    "status": false,
    "message": "Unauthorised"
  }
  ```
</ResponseExample>
