Send multiple contacts
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"contacts": [
{
"name": "<string>",
"phones": [
{}
],
"businessDescription": "<string>"
}
]
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts"
payload = {
"phone": "<string>",
"contacts": [
{
"name": "<string>",
"phones": [{}],
"businessDescription": "<string>"
}
]
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
contacts: [{name: '<string>', phones: [{}], businessDescription: '<string>'}]
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone' => '<string>',
'contacts' => [
[
'name' => '<string>',
'phones' => [
[
]
],
'businessDescription' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"contacts\": [\n {\n \"name\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"businessDescription\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"contacts\": [\n {\n \"name\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"businessDescription\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"contacts\": [\n {\n \"name\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"businessDescription\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyMessages
Send multiple contacts
Send multiple contacts to a recipient on WhatsApp
POST
/
instances
/
{instanceId}
/
token
/
{token}
/
send-contacts
Send multiple contacts
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"contacts": [
{
"name": "<string>",
"phones": [
{}
],
"businessDescription": "<string>"
}
]
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts"
payload = {
"phone": "<string>",
"contacts": [
{
"name": "<string>",
"phones": [{}],
"businessDescription": "<string>"
}
]
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
contacts: [{name: '<string>', phones: [{}], businessDescription: '<string>'}]
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone' => '<string>',
'contacts' => [
[
'name' => '<string>',
'phones' => [
[
]
],
'businessDescription' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"contacts\": [\n {\n \"name\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"businessDescription\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"contacts\": [\n {\n \"name\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"businessDescription\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/send-contacts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"contacts\": [\n {\n \"name\": \"<string>\",\n \"phones\": [\n {}\n ],\n \"businessDescription\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyOverview
Simple and straightforward, this method allows you to send multiple contacts. You don’t need to have them in your contacts, just fill in the method attributes with the contact information and send.Example on WhatsApp

Attributes
Header
Your instance ID. Available in the Z-API panel under Instances.
Your Z-API instance token.
Required
Recipient’s phone number (or group ID for group messages) in DDI DDD NUMBER format. E.g.: 551199999999
Optional
Attribute used to reply to a chat message
Delay added to the message. You can choose between a range of 1 to 15 sec. The default delay if not provided is 1 to 3 sec
Request Body
{
"phone": "5511999999999",
"contacts": [
{
"name": "Contact name",
"phones": ["5544999999999", "5544888888888"]
},
{
"name": "Contact name",
"phones": ["5544999999999"]
},
{
"name": "Contact name",
"businessDescription": "A company from Grupo Irrah",
"phones": ["5544999999999"]
}
]
}
Response
200
{
"zaapId": "3999984263738042930CD6ECDE9VDWSA",
"messageId": "D241XXXX732339502B68",
"id": "D241XXXX732339502B68"
}
405
Make sure you are correctly sending the method specification, that is, verify that you sent POST or GET as specified at the beginning of this topic.415
If you receive a 415 error, make sure to add the “Content-Type” header to your request, which in most cases is “application/json”.⌘I