curl --request PUT \
--url https://app.trypost.it/api/channels/{account}/posting-schedule \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"timezone": "America/Sao_Paulo",
"posting_goal": 5,
"posting_schedule": [
{
"day": 0,
"enabled": true,
"times": []
},
{
"day": 1,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 2,
"enabled": true,
"times": [
"09:00",
"15:00"
]
},
{
"day": 3,
"enabled": true,
"times": [
"12:00"
]
},
{
"day": 4,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 5,
"enabled": true,
"times": []
},
{
"day": 6,
"enabled": false,
"times": []
}
]
}
'import requests
url = "https://app.trypost.it/api/channels/{account}/posting-schedule"
payload = {
"timezone": "America/Sao_Paulo",
"posting_goal": 5,
"posting_schedule": [
{
"day": 0,
"enabled": True,
"times": []
},
{
"day": 1,
"enabled": True,
"times": ["09:00"]
},
{
"day": 2,
"enabled": True,
"times": ["09:00", "15:00"]
},
{
"day": 3,
"enabled": True,
"times": ["12:00"]
},
{
"day": 4,
"enabled": True,
"times": ["09:00"]
},
{
"day": 5,
"enabled": True,
"times": []
},
{
"day": 6,
"enabled": False,
"times": []
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
timezone: 'America/Sao_Paulo',
posting_goal: 5,
posting_schedule: [
{day: 0, enabled: true, times: []},
{day: 1, enabled: true, times: ['09:00']},
{day: 2, enabled: true, times: ['09:00', '15:00']},
{day: 3, enabled: true, times: ['12:00']},
{day: 4, enabled: true, times: ['09:00']},
{day: 5, enabled: true, times: []},
{day: 6, enabled: false, times: []}
]
})
};
fetch('https://app.trypost.it/api/channels/{account}/posting-schedule', 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://app.trypost.it/api/channels/{account}/posting-schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'timezone' => 'America/Sao_Paulo',
'posting_goal' => 5,
'posting_schedule' => [
[
'day' => 0,
'enabled' => true,
'times' => [
]
],
[
'day' => 1,
'enabled' => true,
'times' => [
'09:00'
]
],
[
'day' => 2,
'enabled' => true,
'times' => [
'09:00',
'15:00'
]
],
[
'day' => 3,
'enabled' => true,
'times' => [
'12:00'
]
],
[
'day' => 4,
'enabled' => true,
'times' => [
'09:00'
]
],
[
'day' => 5,
'enabled' => true,
'times' => [
]
],
[
'day' => 6,
'enabled' => false,
'times' => [
]
]
]
]),
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://app.trypost.it/api/channels/{account}/posting-schedule"
payload := strings.NewReader("{\n \"timezone\": \"America/Sao_Paulo\",\n \"posting_goal\": 5,\n \"posting_schedule\": [\n {\n \"day\": 0,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 1,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 2,\n \"enabled\": true,\n \"times\": [\n \"09:00\",\n \"15:00\"\n ]\n },\n {\n \"day\": 3,\n \"enabled\": true,\n \"times\": [\n \"12:00\"\n ]\n },\n {\n \"day\": 4,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 5,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 6,\n \"enabled\": false,\n \"times\": []\n }\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.trypost.it/api/channels/{account}/posting-schedule")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"timezone\": \"America/Sao_Paulo\",\n \"posting_goal\": 5,\n \"posting_schedule\": [\n {\n \"day\": 0,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 1,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 2,\n \"enabled\": true,\n \"times\": [\n \"09:00\",\n \"15:00\"\n ]\n },\n {\n \"day\": 3,\n \"enabled\": true,\n \"times\": [\n \"12:00\"\n ]\n },\n {\n \"day\": 4,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 5,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 6,\n \"enabled\": false,\n \"times\": []\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trypost.it/api/channels/{account}/posting-schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"timezone\": \"America/Sao_Paulo\",\n \"posting_goal\": 5,\n \"posting_schedule\": [\n {\n \"day\": 0,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 1,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 2,\n \"enabled\": true,\n \"times\": [\n \"09:00\",\n \"15:00\"\n ]\n },\n {\n \"day\": 3,\n \"enabled\": true,\n \"times\": [\n \"12:00\"\n ]\n },\n {\n \"day\": 4,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 5,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 6,\n \"enabled\": false,\n \"times\": []\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "9c8b7a65-4d3e-4f2a-8b1c-0d9e8f7a6b54",
"timezone": "America/Sao_Paulo",
"posting_goal": 5,
"posting_schedule": [
{
"day": 0,
"enabled": true,
"times": []
},
{
"day": 1,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 2,
"enabled": true,
"times": [
"09:00",
"15:00"
]
},
{
"day": 3,
"enabled": true,
"times": [
"12:00"
]
},
{
"day": 4,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 5,
"enabled": true,
"times": []
},
{
"day": 6,
"enabled": false,
"times": []
}
]
}{
"message": "Unauthenticated."
}{
"message": "Active subscription required."
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}{
"name": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please retry after 30 seconds."
}Update posting schedule
Replaces the channel’s time zone, posting goal and posting times. Send all seven days, or posting_schedule: null to remove every posting time. Every field is written: omitting posting_goal or posting_schedule clears it like null, so send the current values to keep them (read them with GET /channels/{account}/posting-schedule). Without posting times, the channel’s queued posts become custom-time posts at their current time. Queued posts keep their slot. A schedule change moves only the posts whose slot no longer exists, into the first free slots in order. A time zone change first gives each queued post the slot at the same local time in the new zone, then the first free slots; queue requests pending approval follow the same rule. A queued post with no slot left becomes a custom-time post at its current time. Custom-time posts never move.
curl --request PUT \
--url https://app.trypost.it/api/channels/{account}/posting-schedule \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"timezone": "America/Sao_Paulo",
"posting_goal": 5,
"posting_schedule": [
{
"day": 0,
"enabled": true,
"times": []
},
{
"day": 1,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 2,
"enabled": true,
"times": [
"09:00",
"15:00"
]
},
{
"day": 3,
"enabled": true,
"times": [
"12:00"
]
},
{
"day": 4,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 5,
"enabled": true,
"times": []
},
{
"day": 6,
"enabled": false,
"times": []
}
]
}
'import requests
url = "https://app.trypost.it/api/channels/{account}/posting-schedule"
payload = {
"timezone": "America/Sao_Paulo",
"posting_goal": 5,
"posting_schedule": [
{
"day": 0,
"enabled": True,
"times": []
},
{
"day": 1,
"enabled": True,
"times": ["09:00"]
},
{
"day": 2,
"enabled": True,
"times": ["09:00", "15:00"]
},
{
"day": 3,
"enabled": True,
"times": ["12:00"]
},
{
"day": 4,
"enabled": True,
"times": ["09:00"]
},
{
"day": 5,
"enabled": True,
"times": []
},
{
"day": 6,
"enabled": False,
"times": []
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
timezone: 'America/Sao_Paulo',
posting_goal: 5,
posting_schedule: [
{day: 0, enabled: true, times: []},
{day: 1, enabled: true, times: ['09:00']},
{day: 2, enabled: true, times: ['09:00', '15:00']},
{day: 3, enabled: true, times: ['12:00']},
{day: 4, enabled: true, times: ['09:00']},
{day: 5, enabled: true, times: []},
{day: 6, enabled: false, times: []}
]
})
};
fetch('https://app.trypost.it/api/channels/{account}/posting-schedule', 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://app.trypost.it/api/channels/{account}/posting-schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'timezone' => 'America/Sao_Paulo',
'posting_goal' => 5,
'posting_schedule' => [
[
'day' => 0,
'enabled' => true,
'times' => [
]
],
[
'day' => 1,
'enabled' => true,
'times' => [
'09:00'
]
],
[
'day' => 2,
'enabled' => true,
'times' => [
'09:00',
'15:00'
]
],
[
'day' => 3,
'enabled' => true,
'times' => [
'12:00'
]
],
[
'day' => 4,
'enabled' => true,
'times' => [
'09:00'
]
],
[
'day' => 5,
'enabled' => true,
'times' => [
]
],
[
'day' => 6,
'enabled' => false,
'times' => [
]
]
]
]),
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://app.trypost.it/api/channels/{account}/posting-schedule"
payload := strings.NewReader("{\n \"timezone\": \"America/Sao_Paulo\",\n \"posting_goal\": 5,\n \"posting_schedule\": [\n {\n \"day\": 0,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 1,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 2,\n \"enabled\": true,\n \"times\": [\n \"09:00\",\n \"15:00\"\n ]\n },\n {\n \"day\": 3,\n \"enabled\": true,\n \"times\": [\n \"12:00\"\n ]\n },\n {\n \"day\": 4,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 5,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 6,\n \"enabled\": false,\n \"times\": []\n }\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://app.trypost.it/api/channels/{account}/posting-schedule")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"timezone\": \"America/Sao_Paulo\",\n \"posting_goal\": 5,\n \"posting_schedule\": [\n {\n \"day\": 0,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 1,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 2,\n \"enabled\": true,\n \"times\": [\n \"09:00\",\n \"15:00\"\n ]\n },\n {\n \"day\": 3,\n \"enabled\": true,\n \"times\": [\n \"12:00\"\n ]\n },\n {\n \"day\": 4,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 5,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 6,\n \"enabled\": false,\n \"times\": []\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trypost.it/api/channels/{account}/posting-schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"timezone\": \"America/Sao_Paulo\",\n \"posting_goal\": 5,\n \"posting_schedule\": [\n {\n \"day\": 0,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 1,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 2,\n \"enabled\": true,\n \"times\": [\n \"09:00\",\n \"15:00\"\n ]\n },\n {\n \"day\": 3,\n \"enabled\": true,\n \"times\": [\n \"12:00\"\n ]\n },\n {\n \"day\": 4,\n \"enabled\": true,\n \"times\": [\n \"09:00\"\n ]\n },\n {\n \"day\": 5,\n \"enabled\": true,\n \"times\": []\n },\n {\n \"day\": 6,\n \"enabled\": false,\n \"times\": []\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "9c8b7a65-4d3e-4f2a-8b1c-0d9e8f7a6b54",
"timezone": "America/Sao_Paulo",
"posting_goal": 5,
"posting_schedule": [
{
"day": 0,
"enabled": true,
"times": []
},
{
"day": 1,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 2,
"enabled": true,
"times": [
"09:00",
"15:00"
]
},
{
"day": 3,
"enabled": true,
"times": [
"12:00"
]
},
{
"day": 4,
"enabled": true,
"times": [
"09:00"
]
},
{
"day": 5,
"enabled": true,
"times": []
},
{
"day": 6,
"enabled": false,
"times": []
}
]
}{
"message": "Unauthenticated."
}{
"message": "Active subscription required."
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}{
"name": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please retry after 30 seconds."
}Authorizations
Workspace API key from Settings → API Keys.
Path Parameters
Social account (channel) id. An account of another workspace returns 404.
Body
IANA time zone, for example America/Sao_Paulo.
Posts per week. null or omitted clears it: send the current value to keep it.
1 <= x <= 28Exactly seven days, each day once. null or omitted removes the posting times (queued posts become custom-time posts): send the current values to keep them.
7 elementsShow child attributes
Show child attributes
Response
The saved posting schedule.
Social account id.
IANA time zone of the channel. Posting times and queue slots are in this zone.
Posts per week the channel aims for.
1 <= x <= 28Seven days, Sunday first. null when the channel has no posting times (posts cannot use queue).
Show child attributes
Show child attributes

