Scheduler API
Best-time suggestions, posting windows and schedule coverage.
6 endpoints. Every path is relative to the API base URL and needs a bearer token unless it is marked public. See the REST API overview for authentication, errors and pagination.
GET/v1/orgs/{orgId}/marketing/scheduler/events
Path parameters
orgIdstring (uuid)required
Query parameters
pageintegerlimitintegersortBystringone of
scheduledForUtc,createdAt,status,platformsortDirstringone of
asc,descfilterobjectFields
platformstringstatusstringsocialAccountIdstringtagIdstringscheduledFromstringscheduledTostring
filterOpobjectFields
platformstringone of
eq,instatusstringone of
eq,insocialAccountIdstringone of
eqtagIdstringone of
eq,inscheduledFromstringone of
gtescheduledTostringone of
lte
Responses
200
dataarray<object>requiredItem fields
idstring (uuid)requiredorgIdstring (uuid)requiredgroupIdstring (uuid)requiredplatformstringrequiredone of
x,linkedin,tiktok,reddit,facebook,instagram,youtube,bluesky,threadssocialAccountIdstring (uuid) | nullrequiredstatusstringrequiredone of
draft,pending_approval,approved,scheduled,publishing,awaiting_platform,published,failed,canceledscheduledForUtcstring | nullrequiredcontentTextstringrequiredmediaobject | nullrequiredplatformPayloadobject | nullrequiredpublishedExternalIdstring | nullrequiredpublishedUrlstring | nullrequiredattemptCountnumberrequiredlastAttemptAtstring | nullrequirednextRetryAtstring | nullrequiredlastErrorstring | nullrequiredidempotencyKeystring | nullrequiredcreatedAtstringrequiredupdatedAtstringrequiredscheduleReasonstring | nullapprovalsarray<object>Item fields
idstring (uuid)requiredlevelstringrequiredone of
group,postgroupIdstring (uuid)requiredpostIdstring (uuid) | nullrequiredapprovedByUserIdstring (uuid)requiredapprovedAtstringrequiredactionstringrequiredone of
submit_for_approval,approved,reapproved,rejected
curl -X GET "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/scheduler/events" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"GET/v1/orgs/{orgId}/marketing/scheduler/schedule-coverage
Derived schedule-coverage state for the next N days (gaps, clustering, pending approval).
Path parameters
orgIdstring (uuid)required
Query parameters
daysintegertimezonestring
Responses
200Derived schedule-coverage state for the next N days (gaps, clustering, pending approval).
dataobjectrequiredFields
windowDaysintegerrequiredtimezonestringrequiredoverallStatusstringrequiredone of
covered,needs_attentionchannelsarray<object>requiredItem fields
platformstringrequiredone of
x,linkedin,tiktok,reddit,facebook,instagram,youtube,bluesky,threadsscheduledCountintegerrequiredpublishedCountintegerrequiredpendingApprovalCountintegerrequiredtargetPostsnumber | nullrequiredstatusstringrequiredone of
covered,gap,clustered,waitingnextGapAtstring | nullrequirednotesarray<string>required
pendingApprovalTotalintegerrequired
curl -X GET "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/scheduler/schedule-coverage" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"GET/v1/orgs/{orgId}/marketing/scheduler/settings
The workspace's scheduling profile: audience type and timezone, posting windows per platform, blackout dates, spacing and daily limits. Unset fields show the defaults for the audience type.
Path parameters
orgIdstring (uuid)required
Responses
200The workspace's scheduling profile: audience type and timezone, posting windows per platform, blackout dates, spacing and daily limits. Unset fields show the defaults for the audience type.
dataobjectrequiredFields
timezonestringrequiredtimezoneIsSetbooleanrequiredaudienceTimezonestring | nullrequiredeffectiveTimezonestringrequiredaudienceTypestringrequiredone of
b2b,b2c,mixedincludeWeekendsbooleanrequiredpostingWindowsobjectrequiredFields
xarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumberrequired
linkedinarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumberrequired
tiktokarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumberrequired
customPostingWindowsarray<string>requiredblackoutDatesarray<string>requiredminGapMinutesintegerrequiredmaxPostsPerDayintegerrequiredownerAvailabilityarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequired
curl -X GET "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/scheduler/settings" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"PATCH/v1/orgs/{orgId}/marketing/scheduler/settings
Change part of the scheduling profile. Fields left out stay as they are. Owner/admin only.
Path parameters
orgIdstring (uuid)required
Request body application/json
audienceTimezonestring | nullaudienceTypestringone of
b2b,b2c,mixedincludeWeekendsboolean | nullpostingWindowsobjectFields
xarray<object>Item fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumber
linkedinarray<object>Item fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumber
tiktokarray<object>Item fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumber
blackoutDatesarray<string>minGapMinutesintegermaxPostsPerDayintegerownerAvailabilityarray<object>Item fields
daysanyrequiredstartstringrequiredendstringrequired
timezoneanyresetPostingWindowsarray<string>
Responses
200Change part of the scheduling profile. Fields left out stay as they are. Owner/admin only.
dataobjectrequiredFields
timezonestringrequiredtimezoneIsSetbooleanrequiredaudienceTimezonestring | nullrequiredeffectiveTimezonestringrequiredaudienceTypestringrequiredone of
b2b,b2c,mixedincludeWeekendsbooleanrequiredpostingWindowsobjectrequiredFields
xarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumberrequired
linkedinarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumberrequired
tiktokarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequiredweightnumberrequired
customPostingWindowsarray<string>requiredblackoutDatesarray<string>requiredminGapMinutesintegerrequiredmaxPostsPerDayintegerrequiredownerAvailabilityarray<object>requiredItem fields
daysarray<integer>requiredstartstringrequiredendstringrequired
curl -X PATCH "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/scheduler/settings" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN" \ -H "Content-Type: application/json" \ -d '{}'GET/v1/orgs/{orgId}/marketing/scheduler/slots
Ranks the best upcoming publishing times for a platform from the workspace's scheduling profile and its own post results, skipping times that clash with scheduled posts. Each slot says why it was picked.
Path parameters
orgIdstring (uuid)required
Query parameters
platformstringone of
x,linkedin,tiktokcontentTypestringdaysintegercountinteger
Responses
200Ranks the best upcoming publishing times for a platform from the workspace's scheduling profile and its own post results, skipping times that clash with scheduled posts. Each slot says why it was picked.
dataobjectrequiredFields
timezonestringrequiredaudienceTypestringrequiredone of
b2b,b2c,mixedhistoryPostsintegerrequiredslotsarray<object>requiredItem fields
scheduledForUtcstringrequiredlocalDatestringrequiredlocalTimestringrequiredweekdaystringrequiredscorenumberrequiredreasonstringrequiredbasisstringrequiredone of
defaults,history
curl -X GET "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/scheduler/slots" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"GET/v1/orgs/{orgId}/marketing/scheduler/suggested-times
Path parameters
orgIdstring (uuid)required
Query parameters
datestringrequiredtimezonestringrequiredcountintegerplatformstring
Responses
200
dataobjectrequiredFields
suggestionsarray<object>requiredItem fields
localTimestringrequiredreasonstringrequired
curl -X GET "https://api.adventur.ai/v1/orgs/$ORG_ID/marketing/scheduler/suggested-times?date=string&timezone=string" \ -H "Authorization: Bearer $ADVENTURAI_TOKEN"