Best times to post
get_best_timesThe best hours of the week to post, for each account of a workspace, with the next times they come round (ready for schedule_at). Each account is timed for its own audience: one country, several, the whole world, or a time zone — from this request (countries, world, timezone), else the account's market, else its groups' markets together (set_audience), else where its clicks come from, else the workspace's zone; audience says which and how each country is weighed. One market is read on its own clock; several markets on UTC, with each hour also given in every market's local time, so a worldwide group gets the hours that reach most of its audience. A worldwide audience with no clicks yet is weighed by an assumed mix (audience.assumed_mix). Every source Shager has comes back, most specific first, and best is the first with enough data: account_posts (the account's own posts of the last year, scored by likes, comments, shares, saves and clicks against its typical post; needs 12 measured posts), audience_clicks (when its audience clicked the posts' short links; 50 clicks, else workspace_clicks), shager_country (when people in each of its countries click Shager short links across all customers: counts per hour only, a country only above 500 clicks from 5 workspaces in 90 days), and study (Buffer's 2026 study of millions of posts per network, read in each market's local time; none for Pinterest, Bluesky, Telegram, Mastodon or Google Business). missing says why a more specific source wasn't used. To post at each account's best time without picking it yourself, give create_post, create_posts or schedule_post schedule_at "best": Shager picks every account's next free best time (one post, a delay per account) and says what it picked in best_time.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"workspace_id": "<workspace_id>"
},
"name": "get_best_times"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| world | No | Time every listed account for a worldwide audience instead of its own market | |
| format | No | Only posts of this format count; SHORT also switches YouTube's study hours to Shorts | |
| timezone | No | Read the hours in this IANA zone, e.g. America/New_York, instead of the audience's own | |
| countries | No | Time every listed account for these countries' audience instead of its own market, e.g. ["US","IL"] | |
| group_ids | No | Only the accounts in these groups (from list_groups) | |
| channel_ids | No | Only these accounts (from list_channels) | |
| workspace_id | Yes | Workspace id from list_workspaces |