Schedule Post
Schedule a post for future publishing with intelligent staggered delivery.
Request
Schedule a post for future publishing. This endpoint is optimized for scheduled delivery — it validates the scheduled time, applies intelligent staggering to avoid platform rate limits, and enqueues the post for reliable delivery.
Permission required: posts:create
Body Parameters
contentstringRequiredThe text content of the post. Maximum 63,206 characters.
accountIdsstring[]RequiredArray of social account UUIDs to publish to.
scheduledAtstringRequiredISO 8601 datetime for when the post should be published. Must be at least 1 minute in the future.
mediaUrlsstring[]RequiredArray of public media URLs (max 10).
platformCaptionsobjectRequiredPer-platform content overrides. Keys are lowercase platform names.
tiktokSettingsobjectRequiredTikTok-specific publishing settings (privacyLevel, disableDuet, etc.).
youtubeTitlestringRequiredSeparate title for YouTube posts (max 100 characters).
How Scheduling Works
- Validation — The scheduled time is verified to be at least 1 minute in the future.
- Staggering — eWasl applies intelligent time staggering to avoid platform-level rate limits when many posts are scheduled near the same time.
- Queueing — The post is enqueued for delivery at the calculated time. A cron job backup ensures delivery even if the queue is temporarily unavailable.
- Publishing — At the scheduled time, the post is published to all target platforms.
Response
Returns the scheduled post object. HTTP status 201 Created.
idstringUnique UUID of the created post.
contentstringThe sanitized content.
statusstringAlways SCHEDULED for this endpoint.
platformsstring[]Target platforms (lowercase).
scheduledAtstringThe final scheduled time (may differ slightly from your input due to staggering).
createdAtstringCreation timestamp.
Example Request
curl -X POST https://app.ewasl.com/api/v1/posts/schedule \
-H "Authorization: Bearer ewasl_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Happy Monday! Start your week strong.",
"accountIds": [
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8"
],
"scheduledAt": "2026-12-31T09:00:00Z",
"platformCaptions": {
"twitter": "Monday motivation! #MondayVibes",
"linkedin": "Wishing everyone a productive start to the week. What are you working on today?"
}
}'
Response Example
{
"data": {
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"content": "Happy Monday! Start your week strong.",
"status": "SCHEDULED",
"platforms": ["twitter", "linkedin"],
"mediaUrls": [],
"scheduledAt": "2026-12-31T09:00:00.000Z",
"createdAt": "2026-03-01T12:00:00Z"
}
}