curl --request PATCH \
--url https://api.zapsterapi.com/v1/wa/instances/{instance_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Loja Centro",
"metadata": {
"customer_id": "123456",
"campaign": ""
}
}
'import requests
url = "https://api.zapsterapi.com/v1/wa/instances/{instance_id}"
payload = {
"name": "Loja Centro",
"metadata": {
"customer_id": "123456",
"campaign": ""
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Loja Centro', metadata: {customer_id: '123456', campaign: ''}})
};
fetch('https://api.zapsterapi.com/v1/wa/instances/{instance_id}', 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.zapsterapi.com/v1/wa/instances/{instance_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Loja Centro',
'metadata' => [
'customer_id' => '123456',
'campaign' => ''
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.zapsterapi.com/v1/wa/instances/{instance_id}"
payload := strings.NewReader("{\n \"name\": \"Loja Centro\",\n \"metadata\": {\n \"customer_id\": \"123456\",\n \"campaign\": \"\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.zapsterapi.com/v1/wa/instances/{instance_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Loja Centro\",\n \"metadata\": {\n \"customer_id\": \"123456\",\n \"campaign\": \"\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapsterapi.com/v1/wa/instances/{instance_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Loja Centro\",\n \"metadata\": {\n \"customer_id\": \"123456\",\n \"campaign\": \"\"\n }\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2024-10-03T21:56:22.620Z",
"id": "xy9rexnkwobmgg3tehgvs",
"metadata": {
"customer_id": "123456",
"customer_name": "Joãozinho",
"phone_number": "+5587989075555"
},
"name": "MyNewInstance2",
"owner": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": null
},
"settings": {
"call_rejection": "all",
"delay_per_word": true,
"delete_chat_after_sent": true,
"message_delay": {
"enabled": true,
"max": 10,
"min": 1
},
"presence_behavior": "only_composing",
"read_confirmation": "never"
},
"status": "disconnected",
"webhooks": [
{
"enabled": true,
"events": [
"message.received"
],
"id": "2nenz69l0xbf0m3uu9tfo",
"name": "Webhook Name",
"test_mode": false,
"url": "https://webhook.mydomain.com",
"test_url": null
}
],
"connection_type": "unofficial",
"qrcode": null,
"lookup_key": "ins_8j7wlxmpjlixx9mux5"
}{
"errors": [
{
"code": "invalid_type",
"message": "Expected string, received null",
"path": "name"
}
]
}{
"errors": [
{
"code": "instance_not_found",
"message": "Instance not found."
}
]
}Atualizando a Instância
Atualiza os dados da instância na plataforma, como o nome e os metadados.
curl --request PATCH \
--url https://api.zapsterapi.com/v1/wa/instances/{instance_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Loja Centro",
"metadata": {
"customer_id": "123456",
"campaign": ""
}
}
'import requests
url = "https://api.zapsterapi.com/v1/wa/instances/{instance_id}"
payload = {
"name": "Loja Centro",
"metadata": {
"customer_id": "123456",
"campaign": ""
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Loja Centro', metadata: {customer_id: '123456', campaign: ''}})
};
fetch('https://api.zapsterapi.com/v1/wa/instances/{instance_id}', 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.zapsterapi.com/v1/wa/instances/{instance_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Loja Centro',
'metadata' => [
'customer_id' => '123456',
'campaign' => ''
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.zapsterapi.com/v1/wa/instances/{instance_id}"
payload := strings.NewReader("{\n \"name\": \"Loja Centro\",\n \"metadata\": {\n \"customer_id\": \"123456\",\n \"campaign\": \"\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://api.zapsterapi.com/v1/wa/instances/{instance_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Loja Centro\",\n \"metadata\": {\n \"customer_id\": \"123456\",\n \"campaign\": \"\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zapsterapi.com/v1/wa/instances/{instance_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Loja Centro\",\n \"metadata\": {\n \"customer_id\": \"123456\",\n \"campaign\": \"\"\n }\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2024-10-03T21:56:22.620Z",
"id": "xy9rexnkwobmgg3tehgvs",
"metadata": {
"customer_id": "123456",
"customer_name": "Joãozinho",
"phone_number": "+5587989075555"
},
"name": "MyNewInstance2",
"owner": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"display_name": null
},
"settings": {
"call_rejection": "all",
"delay_per_word": true,
"delete_chat_after_sent": true,
"message_delay": {
"enabled": true,
"max": 10,
"min": 1
},
"presence_behavior": "only_composing",
"read_confirmation": "never"
},
"status": "disconnected",
"webhooks": [
{
"enabled": true,
"events": [
"message.received"
],
"id": "2nenz69l0xbf0m3uu9tfo",
"name": "Webhook Name",
"test_mode": false,
"url": "https://webhook.mydomain.com",
"test_url": null
}
],
"connection_type": "unofficial",
"qrcode": null,
"lookup_key": "ins_8j7wlxmpjlixx9mux5"
}{
"errors": [
{
"code": "invalid_type",
"message": "Expected string, received null",
"path": "name"
}
]
}{
"errors": [
{
"code": "instance_not_found",
"message": "Instance not found."
}
]
}name), os metadados (metadata) e o identificador de pesquisa (lookup_key).
Ele não altera o perfil do WhatsApp (nome de exibição, foto, descrição). Para isso, use o endpoint de atualização de perfil. As configurações de comportamento têm o seu próprio endpoint de atualização de configurações.
Atualize só o que precisar
Você não precisa enviar todos os campos a cada chamada. Envie apenas o que quer mudar e tudo o que ficar de fora continua exatamente como está. Nenhum campo aceitanull: name é sempre um texto, e os valores de metadata são sempre um texto ou um número. Para “limpar” um valor, veja a regra da string vazia logo abaixo.
Como o metadata é atualizado
O metadata também é atualizado de forma parcial: as chaves enviadas são alteradas e todas as outras permanecem intactas. Não é necessário (nem recomendado) reenviar o objeto inteiro.
- Para alterar ou criar uma chave, envie a chave com o novo valor.
- Para manter uma chave como está, simplesmente não a envie.
- Para limpar o valor de uma chave, envie uma string vazia
"".
customer_id, customer_name e campaign, a requisição abaixo altera customer_id, limpa campaign e mantém customer_name intacto:
{
"metadata": {
"customer_id": "789012",
"campaign": ""
}
}
Chaves reservadas wa_
Chaves de metadata iniciadas com wa_ são gerenciadas automaticamente pela plataforma e funcionam como somente leitura: se você enviá-las na requisição, elas são ignoradas e os valores originais são preservados. Use outros nomes para as suas próprias chaves.Autorizações
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Parâmetros de caminho
ID da instância.
Corpo
Nome da instância na plataforma. Sempre um texto, nunca null.
"Minha Instância"
Metadados armazenados como chave e valor. Cada chave é um texto e o valor pode ser um texto ou um número, nunca null.
A atualização é parcial: apenas as chaves enviadas são alteradas e as demais permanecem como estão. Para limpar o valor de uma chave, envie uma string vazia "".
Chaves iniciadas com wa_ são gerenciadas pela plataforma e somente leitura: se enviadas, são ignoradas.
Show child attributes
Show child attributes
Identificador único opcional de pesquisa que permite associar sua instância a uma estrutura de dados específica. A Zapster API não utiliza esse dado internamente; ele serve exclusivamente para facilitar consultas na API.
32"ins_8j7wlxmpjlixx9mux5"
Resposta
Success
Estrutura de uma instância registrada na API.
Data e hora de criação da instância no formato ISO 8601.
"2024-10-03T21:56:22.620Z"
Identificador único da instância.
"xy9rexnkwobmgg3tehgvs"
Metadados adicionais armazenados como chave e valor.
Show child attributes
Show child attributes
{
"customer_id": "123456",
"customer_name": "Joãozinho",
"phone_number": "+5587989075555"
}
Nome da instância.
"MyNewInstance2"
Informações sobre o proprietário da instância.
Show child attributes
Show child attributes
Objeto opcional de configurações da sua instância.
Show child attributes
Show child attributes
Status atual da instância
connected, disconnected, offline "disconnected"
Lista de webhooks configurados para esta instância.
Show child attributes
Show child attributes
Tipo de conexão da instância:
unofficial: conexão via QR code (padrão)waba: conexão via API oficial do WhatsApp (Cloud API da Meta)
unofficial, waba "unofficial"
QR Code da instância, caso disponível.
null
Identificador de pesquisa criado anteriormente.
"ins_8j7wlxmpjlixx9mux5"