Create scheduled post
<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Adds a post to the app's social calendar. The post starts as a proposal, which means it's on the calendar but nothing publishes it yet: approve it with Approve scheduled posts, then run Start scheduling posts to hand it to the publisher.
instagram and linkedin are the only platforms Base44 can publish to, so they're the only ones this endpoint accepts. The app needs a connected account for that platform with publishing permission by the time you schedule the post, not when you create it.
Set scheduled_at far enough ahead that it's still in the future when you schedule the post. Scheduling refuses an instant that has already passed and marks the post failed, and a failed post can't be revived. Send an offset-aware timestamp, or a naive one that Base44 reads as UTC. scheduled_timezone only decides the wall-clock time reported back in scheduled_local_at; it never moves the instant the post goes out.
The social calendar endpoints share two rate limits: 20 requests per minute across creating, editing, deleting and approving posts, and 40 requests per minute across the rest. This endpoint counts against the 20.
<Note>Only the fields documented here are accepted. Base44 owns the post's id, lifecycle status, plan lineage, workflow binding and publish results, and any other field in the body fails with a 422.</Note>
<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>
Path parameters
ID of the app whose social calendar you want.
ID of the app whose social calendar you want.
Request body
Example request
{
"title": "Ship a CRM in an afternoon",
"body": "We replaced our lead spreadsheet with an app we built in an afternoon. Here's what changed.",
"scheduled_at": "2026-09-15T14:00:00Z",
"scheduled_timezone": "Asia/Jerusalem",
"hook": "pain_point",
"best_time_reason": "Weekday afternoons get the most engagement for this audience.",
"hashtags": [
"buildinpublic",
"crm"
],
"image_url": "https://cdn.example.com/posts/crm-launch.png",
"image_prompt": "A freelancer closing a deal on a laptop, warm morning light"
}Response
The created post.
Example response
{
"id": "6886b8d390dc7e2f4a2c91b3",
"app_id": "6820f3a4e7b91d003c45a1f2",
"plan_id": "8c1f9a2e-3b7d-4c5e-9f01-2a3b4c5d6e7f",
"source_post_id": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
"platform": "linkedin",
"title": "Ship a CRM in an afternoon",
"body": "We replaced our lead spreadsheet with an app we built in an afternoon. Here's what changed.",
"hook": "pain_point",
"scheduled_at": "2026-09-15T14:00:00",
"scheduled_local_at": "2026-09-15T17:00:00+03:00",
"scheduled_timezone": "Asia/Jerusalem",
"best_time_reason": "Weekday afternoons get the most engagement for this audience.",
"hashtags": [
"buildinpublic",
"crm"
],
"image_url": "https://cdn.example.com/posts/crm-launch.png",
"image_prompt": "A freelancer closing a deal on a laptop, warm morning light",
"status": "scheduled",
"workflow_id": "68a1c4f0d21b4e0a3c77e912"
}Changes
No recorded changes to this endpoint across all 1 revision of this API.