WhatsApp API

Start at USD $ 19 /month

The most stable y fast
API for WhatsApp

3 days Free trial - No credit card

2 styles supported

Native and Chat-api

Chat-api alternative available !!

QR scanning - Not Official - 360dialog not required

Send and receive messages
via HTTP requests

Api for Developers

Designed to integrate WhatsApp with CRM, ERP or website.
Text, image, audio, video, files and location.

Simple and Customizable

Status and Webhook notifications.
We are the only ones that offer Custom Developments  !!

Quick access
Scan QR code and enjoy

Small

USD $ 19 /month

  • 200 Messages/day

Medium

USD $ 28 /month

  • 600 Messages/day

Pro

USD $ 34 /month

  • 1.800 Messages/day

Full

USD $ 39 /month

  • Over 5.400 Messages/day
* Send image, audio, video and files included in all plans. Max. file size: 2MB.
* Only sent messages are counted. You can receive twice the number of messages of the Plan.
Example: Small Plan, Send 200 and receive 400.


Stable, safe and fast chat API

3 days Free trial - No credit card

Send message

Very simple to use!
2 rules to send by API

Learn more

                    MY_CLIENT_ID='123456'
MY_TOKEN='xyz'

#### Native style ####
curl -X POST "https://api.apichat.io/v1/sendText" \
-H "Content-Type: application/json" \
-H "client-id: $MY_CLIENT_ID" -H "token: $MY_TOKEN" \
-d '{"number": "12345678901", "text": "Hello!"}'

#### Chat-api style ####
curl -X POST "https://api.apichat.io/instance$MY_CLIENT_ID/sendMessage?token=$MY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"phone": 12345678901, "body": "Hello!"}' 
                  
                    //bash: npm install node-fetch import fetch from 'node-fetch' 
const MY_CLIENT_ID = '123456'
const MY_TOKEN = 'xyz'

/***** Native style *****/
const body = {number: '12345678901', text: 'Hello!'}
fetch('https://api.apichat.io/v1/sendText', {
    method: 'POST',
    body: JSON.stringify(body),
    headers: {
        'Content-Type': 'application/json',
        'client-id': MY_CLIENT_ID,
        'token': MY_TOKEN
    }
})
.then(res => res.json()).then(json => console.log(json))

/***** Chat-api style *****/
const body = {phone: 12345678901, body: 'Hello!'}
fetch(`https://api.apichat.io/instance${MY_CLIENT_ID}/sendMessage?token=${MY_TOKEN}`, {
    method: 'POST',
    body: JSON.stringify(body),
    headers: {'Content-Type': 'application/json'}
})
.then(res => res.json()).then(json => console.log(json)) 
                  
                    import requests

MY_CLIENT_ID = '123456'
MY_TOKEN = 'xyz'

#### Native style ####
url = "https://api.apichat.io/v1/sendText"
headers = {
    "Content-Type": "application/json",
    "client-id": MY_CLIENT_ID,
    "token": MY_TOKEN
}
body = {"number": "12345678901", "text": "Hello!"}
res = requests.post(url, json=body, headers=headers)
print(res.json())

#### Chat-api style ####
url = f"https://api.apichat.io/instance{MY_CLIENT_ID}/sendMessage?token={MY_TOKEN}"
headers = {"Content-Type": "application/json"}
body = {"phone": 12345678901, "body": "Hello!"}
res = requests.post(url, json=body, headers=headers)
print(res.json()) 
                  

Receive messages (Webhook)

Example to mount a basic server to receive new message notification

Learn more

                    import express from "express"
const app = express()
app.use(express.json())

app.post('/webhook', async (req, res) => {
	res.sendStatus(200)
	console.log(req.body)
})

const port = 3000
app.listen(port, async () => {
	console.log(`Get a public url using ngrok.com and start with port: ${port}`)
})
                  
                    from flask import Flask, request

app = Flask(__name__)

@app.route("/webhook", methods=["POST"])
def webhook():
    print(request.get_json())
                  

Read messages

Get last 100 messages

Learn more

                    MY_CLIENT_ID='123456'
MY_TOKEN='xyz'

#### Native style ####
curl -X GET "https://api.apichat.io/v1/messages" \
-H "client-id: $MY_CLIENT_ID" -H "token: $MY_TOKEN"

#### Chat-api style ####
curl -X GET \
"https://api.apichat.io/instance$MY_CLIENT_ID/messagesHistory?page=0&count=50&token=$MY_TOKEN" 
                  
                    //bash: npm install node-fetch import fetch from 'node-fetch' 
const MY_CLIENT_ID = '123456'
const MY_TOKEN = 'xyz'

/***** Native style *****/
fetch('https://api.apichat.io/v1/messages', {
    method: 'GET',
    headers: {'client-id': MY_CLIENT_ID, 'token': MY_TOKEN}
})
.then(res => res.json()).then(json => console.log(json))

/***** Chat-api style *****/
fetch(`https://api.apichat.io/instance${MY_CLIENT_ID}/messagesHistory?page=0&count=100&chatId=&token=${MY_TOKEN}`, {
    method: 'GET'
})
.then(res => res.json()).then(json => console.log(json)) 
                  
                    import requests

MY_CLIENT_ID = '123456'
MY_TOKEN = 'xyz'

#### Native style ####
url = "https://api.apichat.io/v1/messages"
headers = {"client-id": MY_CLIENT_ID, "token": MY_TOKEN}
res = requests.get(url, headers=headers)
print(res.json())

#### Chat-api style ####
url = f"https://api.apichat.io/instance{MY_CLIENT_ID}/messagesHistory?page=0&count=50&token={MY_TOKEN}"
res = requests.get(url)
print(res.json())