Definir quais números o membro vê
Define quais números de WhatsApp do workspace um AGENT ou ANALYST vê e opera, sem mudar o papel. Funciona também em convites pendentes.
allowedNumberIds é obrigatório e substitui a lista inteira. [] significa todos os números, inclusive os conectados depois — não nenhum. Um membro restrito a números específicos não ganha números novos sozinho.
Os refresh tokens OAuth do membro são revogados, então um escopo menor vale já na próxima chamada dele.
Exige OAuth, ADMIN ou OWNER. Chave clássica (x-api-key) é recusada com MACHINE_CREDENTIAL_CANNOT_MANAGE_MEMBERS: numa requisição x-api-key não há usuário por trás, e permitir escrita na lista de membros faria de qualquer chave do workspace um caminho de takeover da conta. Para mudar o papel, use PATCH /v1/workspace/members/{id} (só o OWNER).
curl --request PATCH \
--url https://pilotstatus.com.br/v1/workspace/members/{id}/numbers \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"allowedNumberIds": [
"wa_abc"
]
}
'import requests
url = "https://pilotstatus.com.br/v1/workspace/members/{id}/numbers"
payload = { "allowedNumberIds": ["wa_abc"] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({allowedNumberIds: ['wa_abc']})
};
fetch('https://pilotstatus.com.br/v1/workspace/members/{id}/numbers', 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://pilotstatus.com.br/v1/workspace/members/{id}/numbers",
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([
'allowedNumberIds' => [
'wa_abc'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://pilotstatus.com.br/v1/workspace/members/{id}/numbers"
payload := strings.NewReader("{\n \"allowedNumberIds\": [\n \"wa_abc\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<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.patch("https://pilotstatus.com.br/v1/workspace/members/{id}/numbers")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"allowedNumberIds\": [\n \"wa_abc\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/workspace/members/{id}/numbers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"allowedNumberIds\": [\n \"wa_abc\"\n ]\n}"
response = http.request(request)
puts response.read_bodyAutorizações
Sua chave de API ps_
Parâmetros de caminho
Id da membership (o id que a listagem devolve), NÃO o id do usuário.
Corpo
Ids dos números que este AGENT/ANALYST pode ver. Substitui a lista inteira. [] = todos os números do workspace, inclusive os conectados depois.
["wa_abc"]
Resposta
Membro atualizado. Corpo: { "member": { ... } }, no mesmo formato da listagem.
Esta página foi útil?
curl --request PATCH \
--url https://pilotstatus.com.br/v1/workspace/members/{id}/numbers \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"allowedNumberIds": [
"wa_abc"
]
}
'import requests
url = "https://pilotstatus.com.br/v1/workspace/members/{id}/numbers"
payload = { "allowedNumberIds": ["wa_abc"] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({allowedNumberIds: ['wa_abc']})
};
fetch('https://pilotstatus.com.br/v1/workspace/members/{id}/numbers', 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://pilotstatus.com.br/v1/workspace/members/{id}/numbers",
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([
'allowedNumberIds' => [
'wa_abc'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://pilotstatus.com.br/v1/workspace/members/{id}/numbers"
payload := strings.NewReader("{\n \"allowedNumberIds\": [\n \"wa_abc\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<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.patch("https://pilotstatus.com.br/v1/workspace/members/{id}/numbers")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"allowedNumberIds\": [\n \"wa_abc\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/workspace/members/{id}/numbers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"allowedNumberIds\": [\n \"wa_abc\"\n ]\n}"
response = http.request(request)
puts response.read_body