WhatsApp Marketing Messages enable businesses to run personalized promotional campaigns and engage customers directly on WhatsApp, and with the Skynyx third-party API, creating and sending these messages is simple and scalable. Our API allows you to build marketing messages by specifying key parameters such as the recipient’s mobile number, approved marketing template, sender ID, language code, media or offer details, and dynamic values for personalization, ensuring compliance with WhatsApp policies. This makes it easy to launch targeted campaigns, share offers, announcements, and updates, and integrate WhatsApp marketing seamlessly into web apps, mobile apps, backend systems, or automated workflows for high engagement and reliable message delivery.
Try it in Live Tool| Feature | Us | Other APIs |
|---|---|---|
| Credit-Based Pricing | Yes | Limited or confusing |
| Transparent Billing | Yes | Surprise charges |
| Dev-Focused Docs | Yes | Sparse examples |
| Free Credits | Yes | Paywall from day 1 |
| Fast Support | Yes | 3+ day wait time |
This example will sign your document with a Nutrient certificate.

Sign up and receive 100 credits for free, or log in to automatically add your API key to sample code. If you are not sure how credits are consumed read more in our pricing documentation , or check out this guide on calculating credit usage.

Add a PDF named document. pdf to your project folder. You can use our sample document.

Copy the code and run it from the same folder you added the files to. For more information, see our language-specific getting started guides.

Open result.pdf in your project folder to view the results.
# Instruction: Replace values with your own WhatsApp template details and numeric mobile number
POST /v1/whatsapp HTTP/1.1
Host: api.skynyx.dev
Content-Type: application/json
apiKey: your_default_api_key
{
"api_key": "xxxxx",
"mobile_no": "your_10_digit_numeric_mobile_number",
"template_name": "xxx",
"sender_id": "xxxx",
"type": "Marketing",
"file": "C:/Users/YourName/Downloads/sample.pdf",
"language_code": "en_US",
"parameter": ["xxx", "xxx"]
}# Instruction: Replace values with your own WhatsApp template details and numeric mobile number
curl -X POST "https://api.skynyx.dev/v1/whatsapp" -H "Content-Type: application/json" -H "apiKey: your_default_api_key" -d "{
\"api_key\": \"xxxxx\",
\"mobile_no\": \"your_10_digit_numeric_mobile_number\",
\"template_name\": \"xxx\",
\"sender_id\": \"xxxx\",
\"type\": \"Marketing\",
\"file\": \"C:/Users/YourName/Downloads/sample.pdf\",
\"language_code\": \"en_US\",
\"parameter\": [\"xxx\", \"xxx\"]
}":: Instruction: Replace values with your own WhatsApp template details and numeric mobile number
curl -X POST https://api.skynyx.dev/v1/whatsapp ^
-H "Content-Type: application/json" ^
-H "apiKey: your_default_api_key" ^
-d "{
\"api_key\": \"xxxxx\",
\"mobile_no\": \"your_10_digit_numeric_mobile_number\",
\"template_name\": \"xxx\",
\"sender_id\": \"xxxx\",
\"type\": \"Marketing\",
\"file\": \"C:/Users/YourName/Downloads/sample.pdf\",
\"language_code\": \"en_US\",
\"parameter\": [\"xxx\", \"xxx\"]
}"// Instruction: Replace values with your own WhatsApp template details and numeric mobile number
import java.io.IOException;
import okhttp3.*;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class Program {
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = RequestBody.create(
MediaType.parse("application/json"),
"{\"api_key\": \"xxxxx\", \"mobile_no\": \"your_10_digit_numeric_mobile_number\", \"template_name\": \"xxx\", \"sender_id\": \"xxxx\", \"type\": \"Marketing\", \"file\": \"C:/Users/YourName/Downloads/sample.pdf\", \"language_code\": \"en_US\", \"parameter\": [\"xxx\", \"xxx\"]}"
);
Request request = new Request.Builder()
.url("https://api.skynyx.dev/v1/whatsapp")
.addHeader("Content-Type", "application/json")
.addHeader("apiKey", "your_default_api_key")
.post(requestBody)
.build();
try (Response response = client.newCall(request).execute()) {
if (response.body() != null) {
String responseBody = response.body().string();
JsonObject json = JsonParser.parseString(responseBody).getAsJsonObject();
if (json.has("status") && json.get("status").getAsInt() == 200) {
System.out.println("Message sent successfully!");
System.out.println("Response: " + json.toString());
} else {
System.out.println("API returned error: " + json.toString());
}
} else {
System.out.println("Empty response from server");
}
}
}
}// Instruction: Replace values with your own WhatsApp template details and numeric mobile number
const axios = require('axios');
async function main() {
const data = {
api_key: "xxxxx",
mobile_no: "your_10_digit_numeric_mobile_number",
template_name: "xxx",
sender_id: "xxxx",
type: "Marketing",
file: "C:/Users/YourName/Downloads/sample.pdf",
language_code: "en_US",
parameter: ["xxx", "xxx"]
};
try {
const response = await axios.post('https://api.skynyx.dev/v1/whatsapp', data, {
headers: { 'Content-Type': 'application/json', 'apiKey': 'your_default_api_key' }
});
if (response.data.status === 200) {
console.log("Message sent successfully!");
console.log(response.data);
} else {
console.log("API returned error:", response.data);
}
} catch (error) {
console.error(error.message);
}
}
main();// Instruction: Replace values with your own WhatsApp template details and numeric mobile number
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var client = new HttpClient();
var payload = @"{
\"api_key\": \"xxxxx\",
\"mobile_no\": \"your_10_digit_numeric_mobile_number\",
\"template_name\": \"xxx\",
\"sender_id\": \"xxxx\",
\"type\": \"Marketing\",
\"file\": \"C:/Users/YourName/Downloads/sample.pdf\",
\"language_code\": \"en_US\",
\"parameter\": [\"xxx\", \"xxx\"]
}";
var content = new StringContent(payload, Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("apiKey", "your_default_api_key");
var response = await client.PostAsync("https://api.skynyx.dev/v1/whatsapp", content);
var responseBody = await response.Content.ReadAsStringAsync();
var json = JsonSerializer.Deserialize<JsonElement>(responseBody);
if (json.GetProperty("status").GetInt32() == 200) {
Console.WriteLine("Message sent successfully!");
Console.WriteLine(responseBody);
} else {
Console.WriteLine("API returned error: " + responseBody);
}
}
}# Instruction: Replace values with your own WhatsApp template details and numeric mobile number
import requests
import json
url = "https://api.skynyx.dev/v1/whatsapp"
payload = {
"api_key": "xxxxx",
"mobile_no": "your_10_digit_numeric_mobile_number",
"template_name": "xxx",
"sender_id": "xxxx",
"type": "Marketing",
"file": "C:/Users/YourName/Downloads/sample.pdf",
"language_code": "en_US",
"parameter": ["xxx", "xxx"]
}
headers = {"Content-Type": "application/json", "apiKey": "your_default_api_key"}
response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()
if data.get("status") == 200:
print("Message sent successfully!")
print(data)
else:
print("API returned error:", data)<?php
// Instruction: Replace values with your own WhatsApp template details and numeric mobile number
$url = 'https://api.skynyx.dev/v1/whatsapp';
$data = [
"api_key" => "xxxxx",
"mobile_no" => "your_10_digit_numeric_mobile_number",
"template_name" => "xxx",
"sender_id" => "xxxx",
"type" => "Marketing",
"file" => "C:/Users/YourName/Downloads/sample.pdf",
"language_code" => "en_US",
"parameter" => ["xxx", "xxx"]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'apiKey: your_default_api_key'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$json = json_decode($response, true);
if ($json['status'] === 200) {
echo "Message sent successfully!\n";
echo $response;
} else {
echo "API returned error: " . $response;
}
curl_close($ch);