Groups and labels
Message all group contacts
Queues message.body to be sent to every contact in one of the calling user’s groups, each through that contact’s default conversation channel (SMS contacts are skipped when the sender is not set up to send SMS). Returns 200 with an empty body once the send is queued, 404 when the group is not the caller’s, and 403 when the sender has no active messaging subscription or free premium access. Requires a company admin or rep Bearer token; admin users, company API tokens, and partner tokens also need the users update permission.
POST
/
api
/
groups
/
{group_id}
/
message_all
Message all group contacts
curl --request POST \
--url https://api.fluid.app/api/groups/{group_id}/message_all \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"message": {
"body": "Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper."
}
}
EOFimport requests
url = "https://api.fluid.app/api/groups/{group_id}/message_all"
payload = { "message": { "body": "Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper." } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
body: JSON.stringify('Our fall paper sale starts Monday. Reply here to lock in last year\'s price on 20lb copy paper.')
}
})
};
fetch('https://api.fluid.app/api/groups/{group_id}/message_all', 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.fluid.app/api/groups/{group_id}/message_all",
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([
'message' => [
'body' => 'Our fall paper sale starts Monday. Reply here to lock in last year\'s price on 20lb copy paper.'
]
]),
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.fluid.app/api/groups/{group_id}/message_all"
payload := strings.NewReader("{\n \"message\": {\n \"body\": \"Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper.\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/groups/{group_id}/message_all")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"body\": \"Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper.\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/groups/{group_id}/message_all")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"body\": \"Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper.\"\n }\n}"
response = http.request(request)
puts response.read_body"<string>"{
"message": "<string>"
}Response
string | number | boolean | null | any[] | object
Success
Any valid JSON value for provider, integration, theme, metadata, or other dynamic payloads whose keys are not fixed by the API contract.
⌘I
Message all group contacts
curl --request POST \
--url https://api.fluid.app/api/groups/{group_id}/message_all \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"message": {
"body": "Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper."
}
}
EOFimport requests
url = "https://api.fluid.app/api/groups/{group_id}/message_all"
payload = { "message": { "body": "Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper." } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
body: JSON.stringify('Our fall paper sale starts Monday. Reply here to lock in last year\'s price on 20lb copy paper.')
}
})
};
fetch('https://api.fluid.app/api/groups/{group_id}/message_all', 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.fluid.app/api/groups/{group_id}/message_all",
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([
'message' => [
'body' => 'Our fall paper sale starts Monday. Reply here to lock in last year\'s price on 20lb copy paper.'
]
]),
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.fluid.app/api/groups/{group_id}/message_all"
payload := strings.NewReader("{\n \"message\": {\n \"body\": \"Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper.\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/groups/{group_id}/message_all")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"body\": \"Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper.\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/groups/{group_id}/message_all")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"body\": \"Our fall paper sale starts Monday. Reply here to lock in last year's price on 20lb copy paper.\"\n }\n}"
response = http.request(request)
puts response.read_body"<string>"{
"message": "<string>"
}