Other languages
Call the Wazapin HTTP API directly from Python, Go, PHP, or any language with fetch/cURL.
For TypeScript, use the official @wazapin/sdk — typed builders, retries, and webhook helpers included.
For every other runtime, call the REST API with your API key (X-Api-Key). Same endpoints, same payloads.
cURL
curl -X POST "https://api.wazapin.com/v1/messages" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel_id": "wzp_ch_123",
"to": "6281234567890",
"type": "text",
"content": { "body": "Hello from Wazapin" }
}'
Python
import os
import requests
response = requests.post(
"https://api.wazapin.com/v1/messages",
headers={
"X-Api-Key": os.environ["WAZAPIN_API_KEY"],
"Content-Type": "application/json",
},
json={
"channel_id": "wzp_ch_123",
"to": "6281234567890",
"type": "text",
"content": {"body": "Hello from Wazapin"},
},
timeout=20,
)
response.raise_for_status()
print(response.json())
Go
package main
import (
"bytes"
"encoding/json"
"net/http"
"os"
)
func main() {
payload := map[string]any{
"channel_id": "wzp_ch_123",
"to": "6281234567890",
"type": "text",
"content": map[string]any{"body": "Hello from Wazapin"},
}
body, _ := json.Marshal(payload)
req, _ := http.NewRequest(http.MethodPost, "https://api.wazapin.com/v1/messages", bytes.NewReader(body))
req.Header.Set("X-Api-Key", os.Getenv("WAZAPIN_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
}