Create announcement
curl --request POST \
--url https://api.perscom.io/{version}/announcements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"content": "<string>",
"color": "<string>",
"global": false,
"enabled": true,
"expires_at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.perscom.io/{version}/announcements"
payload = {
"title": "<string>",
"content": "<string>",
"color": "<string>",
"global": False,
"enabled": True,
"expires_at": "2023-11-07T05:31:56Z"
}
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({
title: '<string>',
content: '<string>',
color: '<string>',
global: false,
enabled: true,
expires_at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.perscom.io/{version}/announcements', 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.perscom.io/{version}/announcements",
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([
'title' => '<string>',
'content' => '<string>',
'color' => '<string>',
'global' => false,
'enabled' => true,
'expires_at' => '2023-11-07T05:31:56Z'
]),
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.perscom.io/{version}/announcements"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"content\": \"<string>\",\n \"color\": \"<string>\",\n \"global\": false,\n \"enabled\": true,\n \"expires_at\": \"2023-11-07T05:31:56Z\"\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.perscom.io/{version}/announcements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"content\": \"<string>\",\n \"color\": \"<string>\",\n \"global\": false,\n \"enabled\": true,\n \"expires_at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.perscom.io/{version}/announcements")
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 \"title\": \"<string>\",\n \"content\": \"<string>\",\n \"color\": \"<string>\",\n \"global\": false,\n \"enabled\": true,\n \"expires_at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"title": "<string>",
"content": "<string>",
"color": "<string>",
"id": 123,
"global": false,
"enabled": true,
"expires_at": "2023-11-07T05:31:56Z",
"label": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "You are not authenticated. Please provide a valid API key that contains your PERSCOM ID to continue.",
"type": "AuthenticationException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "A valid subscription is required to complete this request.",
"type": "HttpException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "The API key provided does not have the correct permissions and/or scopes to perform the requested action.",
"type": "HttpException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "The [field] is [required|invalid|etc].",
"type": "ValidationException",
"errors": {
"email": [
"The email field is required.",
"The email must be a valid email address."
],
"password": [
"The password must be at least 8 characters.",
"The password must contain at least one uppercase letter."
]
},
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "You have exceeded the API rate limit. Please wait a minute before trying again.",
"type": "ThrottleRequestsException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "The API is currently down for maintenance. Please check back later.",
"type": "HttpException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}Announcements
Create announcement
POST
/
{version}
/
announcements
Create announcement
curl --request POST \
--url https://api.perscom.io/{version}/announcements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"content": "<string>",
"color": "<string>",
"global": false,
"enabled": true,
"expires_at": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.perscom.io/{version}/announcements"
payload = {
"title": "<string>",
"content": "<string>",
"color": "<string>",
"global": False,
"enabled": True,
"expires_at": "2023-11-07T05:31:56Z"
}
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({
title: '<string>',
content: '<string>',
color: '<string>',
global: false,
enabled: true,
expires_at: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.perscom.io/{version}/announcements', 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.perscom.io/{version}/announcements",
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([
'title' => '<string>',
'content' => '<string>',
'color' => '<string>',
'global' => false,
'enabled' => true,
'expires_at' => '2023-11-07T05:31:56Z'
]),
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.perscom.io/{version}/announcements"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"content\": \"<string>\",\n \"color\": \"<string>\",\n \"global\": false,\n \"enabled\": true,\n \"expires_at\": \"2023-11-07T05:31:56Z\"\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.perscom.io/{version}/announcements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"content\": \"<string>\",\n \"color\": \"<string>\",\n \"global\": false,\n \"enabled\": true,\n \"expires_at\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.perscom.io/{version}/announcements")
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 \"title\": \"<string>\",\n \"content\": \"<string>\",\n \"color\": \"<string>\",\n \"global\": false,\n \"enabled\": true,\n \"expires_at\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"title": "<string>",
"content": "<string>",
"color": "<string>",
"id": 123,
"global": false,
"enabled": true,
"expires_at": "2023-11-07T05:31:56Z",
"label": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"message": "You are not authenticated. Please provide a valid API key that contains your PERSCOM ID to continue.",
"type": "AuthenticationException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "A valid subscription is required to complete this request.",
"type": "HttpException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "The API key provided does not have the correct permissions and/or scopes to perform the requested action.",
"type": "HttpException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "The [field] is [required|invalid|etc].",
"type": "ValidationException",
"errors": {
"email": [
"The email field is required.",
"The email must be a valid email address."
],
"password": [
"The password must be at least 8 characters.",
"The password must contain at least one uppercase letter."
]
},
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "You have exceeded the API rate limit. Please wait a minute before trying again.",
"type": "ThrottleRequestsException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}{
"error": {
"message": "The API is currently down for maintenance. Please check back later.",
"type": "HttpException",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"trace_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The API version to use.
Available options:
v1, v2 Body
application/json
The announcement title.
Maximum string length:
255The announcement content. Supports HTML.
Maximum string length:
65535The announcement color. Provided as a 6 digit hex code.
Maximum string length:
255Whether the announcement is displayed globally to all users.
Whether the announcement is enabled and visible to users.
The date and time when the announcement expires. Stored in UTC.
Response
OK
Show child attributes
Show child attributes
Was this page helpful?
⌘I