curl --request POST \
--url https://app.trypost.it/api/channels/{account}/posting-schedule/copy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071"
}
'import requests
url = "https://app.trypost.it/api/channels/{account}/posting-schedule/copy"
payload = { "from": "9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071" }
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({from: '9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071'})
};
fetch('https://app.trypost.it/api/channels/{account}/posting-schedule/copy', 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/copy",
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([
'from' => '9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071'
]),
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/copy"
payload := strings.NewReader("{\n \"from\": \"9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071\"\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://app.trypost.it/api/channels/{account}/posting-schedule/copy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trypost.it/api/channels/{account}/posting-schedule/copy")
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 \"from\": \"9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071\"\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."
}Copy posting schedule
Copies the posting times of another channel of the workspace onto this one. The time zone and posting goal of this channel stay. A source whose posting_schedule is null returns 422 on from. A source with an empty schedule is copied as is, which removes this channel’s posting times. 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 queued post with no slot left becomes a custom-time post at its current time. Custom-time posts never move.
curl --request POST \
--url https://app.trypost.it/api/channels/{account}/posting-schedule/copy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071"
}
'import requests
url = "https://app.trypost.it/api/channels/{account}/posting-schedule/copy"
payload = { "from": "9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071" }
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({from: '9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071'})
};
fetch('https://app.trypost.it/api/channels/{account}/posting-schedule/copy', 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/copy",
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([
'from' => '9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071'
]),
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/copy"
payload := strings.NewReader("{\n \"from\": \"9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071\"\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://app.trypost.it/api/channels/{account}/posting-schedule/copy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"from\": \"9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trypost.it/api/channels/{account}/posting-schedule/copy")
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 \"from\": \"9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071\"\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
Social account to copy from.
Response
The copied 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

