๐Ÿ‘‹ Welcome to the Chatbots Africa WhatsApp API

With this API you can:

Reach more than 1.5 billion WhatsApp users directly from your own systems.

  • Send text, media, interactive lists, quick replies, WhatsApp Flows, and Meta-approved message templates
  • Track delivery status, campaign performance, and wallet balance programmatically
  • Integrate with your CRM, ERP, or any backend capable of making an HTTP request

Getting Started

Create a chatbot from your dashboard and submit it for approval (usually within 24 hours).

Once approved, grab the apikey from your chatbot's settings page.

Use that key to authenticate every request below โ€” there's no separate bearer token.


Base URL

https://api.chatbotsafrica.com/api/v1.0
Rate limit: 500 req/min Sending endpoints require wallet credit Numbers use international format, no leading +

Try it โ€” mock playground

Every endpoint in the sidebar includes a Send Mock Request button. It does not call the live API โ€” no wallet credit is spent and no real WhatsApp message is sent. It simply shows the exact shape of a real request and response so you can integrate with confidence before going live.


Validation Errors

Any endpoint returns 422 with this shape when required fields are missing or invalid:

{
    "errors": [
        "The apikey field is required.",
        "The destination field is required.",
        "The message field is required."
    ]
}

Send Text Message

POST https://api.chatbotsafrica.com/api/v1.0/send/message

Sends a plain text message to a WhatsApp number.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

message string
required

Text content of the message.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/message" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "message": "Hello! Thanks for reaching out to us ๐Ÿ‘‹"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Image Message

POST https://api.chatbotsafrica.com/api/v1.0/send/image

Sends an image from a public URL, with an optional caption.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

image_url string
required

Publicly reachable URL of the image (jpg/png).

caption string

Optional caption shown below the image.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/image" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "image_url": "https://picsum.photos/id/237/800/600.jpg",
    "caption": "Here is a snapshot of your order"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Document Message

POST https://api.chatbotsafrica.com/api/v1.0/send/document

Sends a document (PDF, DOCX, etc.) from a public URL.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

file_url string
required

Publicly reachable URL of the file.

caption string

Filename shown to the recipient.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/document" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "file_url": "https://example.com/files/invoice-4821.pdf",
    "caption": "Invoice-4821.pdf"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Audio Message

POST https://api.chatbotsafrica.com/api/v1.0/send/audio

Sends an audio clip from a public URL.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

audio_url string
required

Publicly reachable URL of the audio file (mp3/ogg).

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/audio" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "audio_url": "https://example.com/audio/voice-note.mp3"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Video Message

POST https://api.chatbotsafrica.com/api/v1.0/send/video

Sends a video from a public URL, with an optional caption.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

video_url string
required

Publicly reachable URL of the video (mp4).

caption string

Optional caption shown below the video.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/video" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "video_url": "https://example.com/video/product-demo.mp4",
    "caption": "Quick demo of the new feature"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Sticker Message

POST https://api.chatbotsafrica.com/api/v1.0/send/sticker

Sends a WebP sticker from a public URL.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

sticker_url string
required

Publicly reachable URL of the sticker (webp).

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/sticker" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "sticker_url": "https://example.com/stickers/thumbs-up.webp"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Location Message

POST https://api.chatbotsafrica.com/api/v1.0/send/location

Sends a pinned location.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

latitude number
required

Latitude coordinate.

longitude number
required

Longitude coordinate.

name string

Label shown for the pin.

address string

Address text shown under the label.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/location" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "latitude": "5.614818",
    "longitude": "-0.208811",
    "name": "Mega HQ",
    "address": "12 Independence Ave, Accra"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Contact Message

POST https://api.chatbotsafrica.com/api/v1.0/send/contact

Shares one or more contact cards, in WhatsApp's native contacts format.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

contacts array
required

Array of contact objects (WhatsApp contacts schema).

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/contact" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "contacts": [
        {
            "name": {
                "formatted_name": "Kwame Mensah",
                "first_name": "Kwame",
                "last_name": "Mensah"
            },
            "phones": [
                {
                    "phone": "+233241234567",
                    "type": "CELL"
                }
            ]
        }
    ]
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send List Message

POST https://api.chatbotsafrica.com/api/v1.0/send/list/message

Sends an interactive list of selectable options. The `interactive` field must be a JSON-encoded string (not a nested object).

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

interactive string
required

JSON string: {type, title, body, footer?, globalButtons[0].title, items[].title, items[].options[].{postbackText,title,description}}.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/list/message" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "interactive": "{\"type\":\"list\",\"title\":\"Our Menu\",\"body\":\"Choose an option below\",\"footer\":\"Powered by Mega\",\"globalButtons\":[{\"title\":\"View Options\"}],\"items\":[{\"title\":\"Popular\",\"options\":[{\"postbackText\":\"opt_pizza\",\"title\":\"Pizza\",\"description\":\"Large pepperoni pizza\"},{\"postbackText\":\"opt_burger\",\"title\":\"Burger\",\"description\":\"Beef burger with fries\"}]}]}"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Flow Message

POST https://api.chatbotsafrica.com/api/v1.0/send/flow/message

Launches a WhatsApp Flow. The `interactive` field must be a JSON-encoded string (not a nested object).

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

interactive string
required

JSON string: {title, body, footer?, flow_token, flow_id, flow_cta, screen}.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/flow/message" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "interactive": "{\"type\":\"flow\",\"title\":\"Book an appointment\",\"body\":\"Tap below to pick a time that works for you.\",\"footer\":\"Mega Clinic\",\"flow_token\":\"flow_tok_8f21ac\",\"flow_id\":\"1234567890123456\",\"flow_cta\":\"Book Now\",\"screen\":\"APPOINTMENT_SCREEN\"}"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Quick Reply Message

POST https://api.chatbotsafrica.com/api/v1.0/send/quick/reply

Sends a message with up to a few tappable reply buttons. The `interactive` field must be a JSON-encoded string (not a nested object).

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

interactive string
required

JSON string: {content.text, content.caption, options[].title}.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/quick/reply" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "interactive": "{\"content\":{\"text\":\"Would you like to proceed with your order?\",\"caption\":\"Reply below\"},\"options\":[{\"title\":\"Yes, proceed\"},{\"title\":\"No, cancel\"}]}"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Direct Reply Message

POST https://api.chatbotsafrica.com/api/v1.0/send/reply/message

Sends a text message as a threaded reply to a previous inbound message.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

message_id string
required

The wamid of the message you're replying to.

message string
required

Text content of the reply.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/reply/message" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "message_id": "wamid.HBgLMjMzMjQxMjM0NTYVAgASGBI5QjhFQTlFRjdFRjdFRjdFRjcA",
    "message": "Thanks for confirming, we'll get that sorted right away."
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Message Template

POST https://api.chatbotsafrica.com/api/v1.0/send/message/template

Sends a Meta-approved message template. `template_id` comes from the "List Message Templates" endpoint below.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Recipient number, international format without a leading +.

template_id integer
required

ID of an approved template belonging to your chatbot.

type string
required

One of: text, image, video, audio, document โ€” matches the template's header type.

placeholder string|array

Values that fill the template's {{1}}, {{2}}, ... variables, in order. Accepts either a JSON array (recommended) or a comma-separated string. Use an array whenever a value itself contains a comma (an address, a price like "2,450.00", an item list) โ€” splitting a comma-string can shift every value after it. A mismatch between the number of values sent and the number of variables in the template returns a 422 before the message is sent to WhatsApp.

link string

Public media URL โ€” required when type is image/video/audio/document.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/message/template" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "template_id": 42,
    "type": "text",
    "placeholder": [
        "Kwame",
        "ORD-4821"
    ]
}'
response.json
// Click "Send Mock Request" to preview a sample response.

List Message Templates

GET https://api.chatbotsafrica.com/api/v1.0/send/template/list

Returns every approved template owned by your chatbot, with its content, CTA buttons and quick replies.

Request
Headers
Content-Type string
required

application/json

Query Parameters
apikey string
required

Your chatbot API key.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -G "https://api.chatbotsafrica.com/api/v1.0/send/template/list" \
  --data-urlencode "apikey=wa_live_9f2c7a1e4b6d8f3a"
response.json
// Click "Send Mock Request" to preview a sample response.

Retrieve Media URL

POST https://api.chatbotsafrica.com/api/v1.0/get/media/url

Looks up a media object by the ID Meta sent in an inbound message webhook (e.g. an image a customer sent you), and proxies the file back.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

media_id string
required

The media ID from an inbound webhook payload.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/get/media/url" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "media_id": "1284759385621047"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Download Media

GET https://api.chatbotsafrica.com/api/v1.0/media/download

Downloads the file a customer sent to your bot (image, document, audio, video or sticker). Pass the media ID from the inbound webhook (messages[0].image.id), or the lookaside url from the webhook. The response body is the raw file with its Content-Type and a Content-Disposition filename. Also accepts POST. Lookaside URLs expire after about 5 minutes, so prefer media_id.

Request
Headers
Content-Type string
required

application/json

Query Parameters
apikey string
required

Your chatbot API key.

media_id string

The media ID from the inbound webhook. Required if url is not sent.

url string

The https://lookaside.fbsbx.com URL from the inbound webhook. Required if media_id is not sent.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -G "https://api.chatbotsafrica.com/api/v1.0/media/download" \
  --data-urlencode "apikey=wa_live_9f2c7a1e4b6d8f3a" \
  --data-urlencode "media_id=1284759385621047"
response.json
// Click "Send Mock Request" to preview a sample response.

Get Wallet Balance

GET https://api.chatbotsafrica.com/api/v1.0/wallet/balance

Returns the current credit balance for your account.

Request
Headers
Content-Type string
required

application/json

Query Parameters
apikey string
required

Your chatbot API key.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -G "https://api.chatbotsafrica.com/api/v1.0/wallet/balance" \
  --data-urlencode "apikey=wa_live_9f2c7a1e4b6d8f3a"
response.json
// Click "Send Mock Request" to preview a sample response.

Get Delivery Report

GET https://api.chatbotsafrica.com/api/v1.0/delivery/report

Returns the delivery status and billing details for a single message.

Request
Headers
Content-Type string
required

application/json

Query Parameters
apikey string
required

Your chatbot API key.

message_id string
required

The wamid returned when the message was sent.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -G "https://api.chatbotsafrica.com/api/v1.0/delivery/report" \
  --data-urlencode "apikey=wa_live_9f2c7a1e4b6d8f3a" \
  --data-urlencode "message_id=wamid.HBgLMjMzMjQxMjM0NTYVAgARGBI1RjhFQTlFRjdFRjdFRjdFRjcA"
response.json
// Click "Send Mock Request" to preview a sample response.

Opt Contact In/Out

POST https://api.chatbotsafrica.com/api/v1.0/send/opt/contact

Records a contact's opt-in/opt-out status for business-initiated messaging.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key.

destination string
required

Contact number, international format without a leading +.

status boolean
required

true to opt in, false to opt out.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/send/opt/contact" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "wa_live_9f2c7a1e4b6d8f3a",
    "destination": "233241234567",
    "status": true
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Messenger Text Message

POST https://api.chatbotsafrica.com/api/v1.0/messenger/send/message

Sends a plain text message to a Messenger user. Requires a chatbot on the `facebook` channel with a connected Page โ€” an apikey belonging to a WhatsApp-channel chatbot is rejected with a 422, and a chatbot with no Page connected yet returns a 409. Messenger only allows free-form sends within 24 hours of the person's last message to your Page.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key (must be a facebook-channel chatbot).

destination string
required

Recipient's Page-Scoped ID (PSID) โ€” not a phone number. Obtained from an inbound message webhook.

message string
required

Text content of the message.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/messenger/send/message" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "fb_live_2a8e6c1d9f4b7a3e",
    "destination": "7042183512345678",
    "message": "Hello! Thanks for reaching out to us ๐Ÿ‘‹"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Messenger Image Message

POST https://api.chatbotsafrica.com/api/v1.0/messenger/send/image

Sends an image from a public URL to a Messenger user.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key (must be a facebook-channel chatbot).

destination string
required

Recipient's Page-Scoped ID (PSID).

image_url string
required

Publicly reachable URL of the image (jpg/png).

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/messenger/send/image" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "fb_live_2a8e6c1d9f4b7a3e",
    "destination": "7042183512345678",
    "image_url": "https://picsum.photos/id/237/800/600.jpg"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Messenger Button Template

POST https://api.chatbotsafrica.com/api/v1.0/messenger/send/button-template

Sends text with up to three tappable buttons (web link or postback) โ€” Messenger's "button template".

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key (must be a facebook-channel chatbot).

destination string
required

Recipient's Page-Scoped ID (PSID).

message string
required

Text shown above the buttons.

buttons array
required

Array of up to 3 button objects: {type: web_url|postback, title, url|payload} โ€” matches Messenger's button template schema.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/messenger/send/button-template" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "fb_live_2a8e6c1d9f4b7a3e",
    "destination": "7042183512345678",
    "message": "Your order ORD-4821 has shipped!",
    "buttons": [
        {
            "type": "web_url",
            "url": "https://example.com/track/ORD-4821",
            "title": "Track Order"
        },
        {
            "type": "postback",
            "payload": "CANCEL_ORDER",
            "title": "Cancel Order"
        }
    ]
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Messenger Quick Reply

POST https://api.chatbotsafrica.com/api/v1.0/messenger/send/quick-reply

Sends text with tappable quick-reply chips that disappear after one is tapped.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key (must be a facebook-channel chatbot).

destination string
required

Recipient's Page-Scoped ID (PSID).

message string
required

Text shown above the quick replies.

quick_replies array
required

Array of {content_type: "text", title, payload} objects โ€” matches Messenger's quick_replies schema.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/messenger/send/quick-reply" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "fb_live_2a8e6c1d9f4b7a3e",
    "destination": "7042183512345678",
    "message": "Would you like to proceed with your order?",
    "quick_replies": [
        {
            "content_type": "text",
            "title": "Yes, proceed",
            "payload": "QR_YES"
        },
        {
            "content_type": "text",
            "title": "No, cancel",
            "payload": "QR_NO"
        }
    ]
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Instagram Text Message

POST https://api.chatbotsafrica.com/api/v1.0/instagram/send/message

Sends a plain text message to an Instagram user. Requires a chatbot on the `instagram` channel with a connected account โ€” an apikey belonging to a different channel's chatbot is rejected with a 422, and a chatbot with no Instagram account connected yet returns a 409. Instagram only allows free-form sends within 24 hours of the person's last message to your account.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key (must be an instagram-channel chatbot).

destination string
required

Recipient's Instagram-Scoped ID (IGSID) โ€” not a username or phone number. Obtained from an inbound message webhook.

message string
required

Text content of the message.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/instagram/send/message" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "ig_live_5c9d2a7e1f4b8c36",
    "destination": "17856349021456789",
    "message": "Hello! Thanks for reaching out to us ๐Ÿ‘‹"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Instagram Image Message

POST https://api.chatbotsafrica.com/api/v1.0/instagram/send/image

Sends an image from a public URL to an Instagram user.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key (must be an instagram-channel chatbot).

destination string
required

Recipient's Instagram-Scoped ID (IGSID).

image_url string
required

Publicly reachable, directly-resolving URL of the image (jpg/png) โ€” a redirecting URL (e.g. most link shorteners) may fail to fetch.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/instagram/send/image" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "ig_live_5c9d2a7e1f4b8c36",
    "destination": "17856349021456789",
    "image_url": "https://fastly.picsum.photos/id/237/800/600.jpg"
}'
response.json
// Click "Send Mock Request" to preview a sample response.

Send Instagram Quick Reply

POST https://api.chatbotsafrica.com/api/v1.0/instagram/send/quick-reply

Sends text with tappable quick-reply chips that disappear after one is tapped.

Request
Headers
Content-Type string
required

application/json

Body application/json
apikey string
required

Your chatbot API key (must be an instagram-channel chatbot).

destination string
required

Recipient's Instagram-Scoped ID (IGSID).

message string
required

Text shown above the quick replies.

quick_replies array
required

Array of {content_type: "text", title, payload} objects.

request.json
Parameters
Content-Typeapplication/json
Mock mode โ€” no live call, no wallet credit spent
request.sh
curl -X POST "https://api.chatbotsafrica.com/api/v1.0/instagram/send/quick-reply" \
  -H "Content-Type: application/json" \
  -d '{
    "apikey": "ig_live_5c9d2a7e1f4b8c36",
    "destination": "17856349021456789",
    "message": "Would you like to proceed with your order?",
    "quick_replies": [
        {
            "content_type": "text",
            "title": "Yes, proceed",
            "payload": "QR_YES"
        },
        {
            "content_type": "text",
            "title": "No, cancel",
            "payload": "QR_NO"
        }
    ]
}'
response.json
// Click "Send Mock Request" to preview a sample response.