All Functionalities Live

132/132 Servers Live

support@localhost

Watspi

For medium and large businesses

Enterprise level WhatsApp API

With the most advance capabilities

How it works ?

Fixed price no hidden fees, unlimited messages, no cost per message Quick Onboarding in less than 5 minutes

Create Account

Sign up and create instance to get your instance ID and Token.

Scan QR Code

Scan QR to authenticate your instance to send messages via your WhatsApp number.

Send Messages

Start sending messages via API with your favorite programming languages.

Ready in 3 minutes

Start working with your own WhatsApp number

7 days free trial. No card required. No strings attached.
Keep using your existing WhatsApp number without losing any chats, messages or contacts.

1

Register your account

Fill in the registration form and pick one of the available plans that best suit your requirements.

2

Connect your number

Fill in the registration form and pick one of the available plans that best suit your requirements.

3

Invite your team

Fill in the registration form and pick one of the available plans that best suit your requirements.

4

Smarten up your communication on WhatsApp

Fill in the registration form and pick one of the available plans that best suit your requirements.

Powerful features of our WhatsApp API

Experience unlimited usage with fixed pricing

Full-featured JSON API

Any preferred language can be connected to WhatsApp API via JSON API. You can find documentation and examples here.

Stable Multi Device API

Multi-device WhatsApp no longer needs a phone connection, so Maytapi provides better uptime (99.98%) compared to the past.

WhatsApp Group Management

You have full control of the WhatsApp Group API that lets you create a group, add/remove a participant, and send/receive a message.

Rich Message Type

All message types (text, location, contact, images, audio, videos, documents, or archives) are supported.

Webhook

User-defined HTTP callbacks are triggered when a message is received or the delivery status is changed.

Interactive Message (BETA)

User-defined HTTP callbacks are triggered when a message is received or the delivery status is changed.

Features that you will love

Say goodbye to mediocre WhatsApp experiences.
Embrace a new era of productivity with Watspi.

Watspi is Developer-Friendly API for integration

Watspi is a multifunctional API for WhatsApp And Best Tool for businesses and programmers, which can be integrated into any accounting system, CRM, ERP, or website to send messages, notify users, and much more.

01

WATSPI For The Sales Team

Use the WhatsApp Chat widget on your website to engage with new prospects. Reduce first response times and boost conversions with a much faster 2-way communication tool.

02

WATSPI For The Marketing Teams

Engage & build relationships with your customers with personalized offers without getting into the trap of spam. Get never before open rates and response rates.

03

WATSPI For The Support Teams

Send order updates & keep your customers informed about your timings, availability, and enable quick issue resolution with WhatsApp Chatbot and native integrations with your most popular tools.

04

WATSPI For The Developers

Our WhatsApp API Gateway plan is the best for developers who only want whatsApp API access without any dashboard. Build your own solutions with WATSPI API Gateway.

API Package

Connect your WhatsApp account to your own systems with APIs.

Our Comfortable Rates

We have developed a flexible pricing policy.Choose the plan that suits you best

Stable Multi Device API

$25/month

U.S. Dollar

Start working with Watspi and send messages via WhatsApp REST API

Make a chatbot and integrate WhatsApp with your systems: ERP,CRM, your app or website.You can use any programmable language to easily.

				
					<?php
//The idInstance and apiTokenInstance values are available in your account, double brackets must be removed
$url = 'https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}';

//chatId is the number to send the message to (@c.us for private chats, @g.us for group chats)
$data = array(
    'chatId' => '71234567890@c.us',
    'message' => 'Hello World'
);

$options = array(
    'http' => array(
        'header' => "Content-Type: application/json\r\n",
        'method' => 'POST',
        'content' => json_encode($data)
    )
);

$context = stream_context_create($options);

$response = file_get_contents($url, false, $context);

echo $response;
?>
				
			
				
					const axios = require('axios');

const url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}";

const payload = {
    chatId: "11001234567@c.us",
    message: "I use Green-API to send this message to you!"
};

const headers = {
    'Content-Type': 'application/json'
};

axios.post(url, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('Error:', error.message);
    });

				
			
				
					const axios = require('axios');

const url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}";

const payload = {
    chatId: "11001234567@c.us",
    message: "I use Green-API to send this message to you!"
};

const headers = {
    'Content-Type': 'application/json'
};

axios.post(url, payload, { headers })
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.error('Error:', error.message);
    });

				
			
				
					import requests

url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}"

payload = "{\r\n\t\"chatId\": \"11001234567@c.us\",\r\n\t\"message\": \"I use Green-API to send this message to you!\"\r\n}"
headers = {
'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data = payload)

print(response.text.encode('utf8'))
				
			
				
					curl -X POST -H "Content-Type: application/json" -d '{"chatId": "11001234567@c.us", "message": "I use Green-API to send this message to you!"}' "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}"

				
			
				
					import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class Main {
    public static void main(String[] args) throws Exception {
        String url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}";
        String payload = "{\n\t\"chatId\": \"11001234567@c.us\",\n\t\"message\": \"I use Green-API to send this message to you!\"\n}";
        
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // Set request method
        con.setRequestMethod("POST");

        // Set request headers
        con.setRequestProperty("Content-Type", "application/json");

        // Enable input/output streams
        con.setDoOutput(true);

        // Write the payload to the request body
        try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
            wr.writeBytes(payload);
            wr.flush();
        }

        // Get the response code
        int responseCode = con.getResponseCode();

        // Read the response
        try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) {
            String inputLine;
            StringBuilder response = new StringBuilder();

            while ((inputLine = in.readLine()) != null) {
                response.ap

				
			
				
					require 'net/http'
require 'uri'
require 'json'

url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}"
payload = {
  chatId: "11001234567@c.us",
  message: "I use Green-API to send this message to you!"
}

uri = URI.parse(url)

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.path,
  {'Content-Type' => 'application/json'})

request.body = payload.to_json

response = http.request(request)

puts response.body

				
			
				
					Imports System.Net.Http
Imports System.Text

Module Module1
    Sub Main()
        Dim url As String = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}"
        Dim payload As String = "{""chatId"": ""11001234567@c.us"",""message"": ""I use Green-API to send this message to you!""}"

        Dim httpClient As New HttpClient()
        Dim content As New StringContent(payload, Encoding.UTF8, "application/json")

        Dim response As HttpResponseMessage = httpClient.PostAsync(url, content).Result

        If response.IsSuccessStatusCode Then
            Dim result As String = response.Content.ReadAsStringAsync().Result
            Console.WriteLine(result)
        Else
            Console.WriteLine("Error: " & response.StatusCode.ToString())
        End If
    End Sub
End Module

				
			
				
					using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}";
        string payload = "{\"chatId\": \"11001234567@c.us\",\"message\": \"I use Green-API to send this message to you!\"}";

        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Content-Type", "application/json");

            using (HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json"))
            {
                HttpResponseMessage response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    string result = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(result);
                }
                else
                {
                    Console.WriteLine($"Error: {response.StatusCode}");
                }
            }
        }
    }
}

				
			
				
					package main

import (
	"bytes"
	"fmt"
	"net/http"
)

func main() {
	url := "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}"
	payload := []byte(`{"chatId": "11001234567@c.us", "message": "I use Green-API to send this message to you!"}`)

	req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	if err != nil {
		fmt.Println("Error creating request:", err)
		return
	}

	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Error making request:", err)
		return
	}
	defer resp.Body.Close()

	body := new(bytes.Buffer)
	_, err = body.ReadFrom(resp.Body)
	if err != nil {
		fmt.Println("Error reading response body:", err)
		return
	}

	fmt.Println(body.String())
}

				
			
				
					#include <stdio.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl;
    CURLcode res;

    const char *url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}";
    const char *payload = "{\"chatId\": \"11001234567@c.us\", \"message\": \"I use Green-API to send this message to you!\"}";

    curl_global_init(CURL_GLOBAL_DEFAULT);

    curl = curl_easy_init();
    if(curl) {
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Content-Type: application/json");

        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);

        res = curl_easy_perform(curl);

        if(res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();
    return 0;
}

				
			
				
					:dependencies [[clj-http "3.12.0"]]
(ns your-namespace
  (:require [clj-http.client :as client]))

(defn send-message []
  (let [url "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}"
        payload "{\"chatId\": \"11001234567@c.us\", \"message\": \"I use Green-API to send this message to you!\""
        headers {"Content-Type" "application/json"}
        response (client/post url {:headers headers :body payload})]
    (println (-> response :body (.getBytes "UTF-8") String.))))

				
			
				
					dependencies:
  http: ^0.14.0
import 'dart:convert';
import 'package:http/http.dart' as http;

void main() async {
  String url = "https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}";
  String payload = '{"chatId": "11001234567@c.us", "message": "I use Green-API to send this message to you!"}';
  Map<String, String> headers = {'Content-Type': 'application/json'};

  http.Response response = await http.post(
    Uri.parse(url),
    headers: headers,
    body: payload,
  );

  if (response.statusCode == 200) {
    print(utf8.decode(response.bodyBytes));
  } else {
    print('Error: ${response.statusCode}');
  }
}

				
			
				
					#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *urlString = @"https://api.green-api.com/waInstance{{idInstance}}/sendMessage/{{apiTokenInstance}}";
        NSURL *url = [NSURL URLWithString:urlString];

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        [request setHTTPMethod:@"POST"];
        [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

        NSString *payloadString = @"{\"chatId\": \"11001234567@c.us\", \"message\": \"I use Green-API to send this message to you!\"}";
        NSData *payloadData = [payloadString dataUsingEncoding:NSUTF8StringEncoding];
        [request setHTTPBody:payloadData];

        NSURLSession *session = [NSURLSession sharedSession];

        NSURLSessionDataTask *task = [session dataTaskWithRequest:request
                                                completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
            if (error) {
                NSLog(@"Error: %@", error.localizedDescription);
            } else {
                NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                NSLog(@"%@", result);
            }
        }];

        [task resume];
    }
    return 0;
}

				
			

FAQ

Any questions? We got some answers.

What is Watspi?

watspi is a powerful web-based chat solution designed for teams. It allows multiple users to interact with a shared WhatsApp account at the same time on one or multiple WhatsApp numbers. With a range of helpful features, watspi enhances team productivity, collaboration, and customer communication.

Depending on the plan you choose, with platform plans you can have from 3 to 9 agents per WhatsApp number. Take into account that the admin can also use the chat.

It's not mandatory, Watspi works with both Personal or Business WhatsApp accounts.

Sure thing, you have a 7 days free trial with any of our plans. The free trial will give you access to the full version of the product according to the plan that you choose.

We accept all major credit/debit card brands, including Visa, Mastercard, American Express, Maestro, Discover, Amex, Diners Club or Unionpay.

Absolutely! You can have as many numbers as you need, however, please keep in mind that one number corresponds to one plan subscription.

Yes, you can build a chatbot on top of Wassenger API and webhook events integration. It works with any server programming language. The only requirement is to have an HTTP(S)-based server capable of receiving HTTP POST JSON-based requests.You can check out the API documentation for more details and code examples.Open the API documentation here

Of course. We provide full access to the API and Webhook integration with all our pricing plans at no additional costs.You can use the API to send automatic notifications, create chatbots, send surveys, automatic responses and more.We provide extensive details and ready to use code examples in 15+ programming languages.Open the API documentation here

Yes! The Platform plans includes both sending and receiving messages to and from group chats and the new WhatsApp Channels.You can also automate receiving messages from groups and channels by using the webhooks integration, also only available in Platform plans.You can also create, update, remove and manage groups and channels by using the API.

Yes! You can continue using the same WhatsApp number you currently have and has been always using, regardless of if it's a Business or Personal WhatsApp number and all messages, contacts and chats will be automatically synced.Our product and API is accessible to everyone and you can start using it right away. You just need a active WhatsApp number, and that's it.

All the contacts that you have on your WhatsApp number will automatically synchronized, so you don't need to import them. But you can create new contacts on the platform and through the API.

Yes, of course! You can send messages to any number that is associated to a WhatsApp account in any country where WhatsApp operates.

Calls and videocalls are not supported, but you can send videos and audio messages instead.

There are no additional costs apart from the monthly plan. You can send as many messages as are included in your plan, and if you have an Enterprise plan, there are no limits to the number of messages you can send.All prices that you see displayed in our website are final and include all features described for each plan. There are no hidden extra costs.

Have Question? Get in touch!.

We always listen to our clients.
That’s why Watspi is friendly and easy to use.
If you have any wishes for the functionality, talk to us, so you can help develop the service.