Use case
Schedule social media posts with an API call
To schedule a social media post through an API, send a POST to /api/content/text, /photos or /video with a scheduledAt ISO 8601 timestamp and the connection slugs to publish to. Socifyr queues the post and publishes it at that time on each platform. Scheduling needs a paid plan, starting at $9.99 a month.
cURLTypeScript SDKCLIMCP prompt
How it works
- 1
Pick targets by slug
List connections with the API, CLI or MCP and copy the slugs (for example facebook-mypage). Slugs stay stable, so a stored schedule job never breaks when a token is refreshed. - 2
Send scheduledAt and an optional timezone
scheduledAt must be a future ISO 8601 datetime. Add a timezone such as America/New_York if you want the schedule to follow local time. - 3
Edit or publish early while it is still scheduled
PATCH /api/content/:id changes the caption or time. POST /api/content/:id/publish-now sends it immediately. Deleting it cancels the schedule. - 4
Get told when it lands
Poll GET /api/content/status?requestId=..., or on the Business plan subscribe a signed webhook to upload.completed and upload.failed.
Working code
curl -X POST https://api.socifyr.com/api/content/text \
-H "Authorization: Bearer sk_your_key" \
-H "X-Workspace-Id: your_workspace_id" \
-H "Content-Type: application/json" \
-d '{
"connections": ["facebook-mypage", "linkedin-mybrand"],
"text": "Webinar starts in one hour. Link in comments.",
"scheduledAt": "2026-12-01T14:00:00Z",
"timezone": "America/New_York"
}'import { Socifyr } from '@socifyr/sdk'
const socifyr = new Socifyr({
apiKey: process.env.SOCIFYR_API_KEY!,
workspaceId: process.env.SOCIFYR_WORKSPACE_ID!,
})
const scheduled = await socifyr.uploads.text({
connections: ['facebook-mypage', 'linkedin-mybrand'],
text: 'Webinar starts in one hour. Link in comments.',
scheduledAt: '2026-12-01T14:00:00Z',
timezone: 'America/New_York',
})socifyr post "Webinar starts in one hour." \
--to facebook-mypage,linkedin-mybrand \
--at 2026-12-01T14:00:00ZSchedule "Webinar starts in one hour. Link in comments." for
2026-12-01 at 14:00 UTC on facebook-mypage and linkedin-mybrand.Replace sk_your_key and the workspace ID with your own from the dashboard, and use your own connection slugs.
Who this is for
Product teams with a release calendar
Schedule announcement posts from the same repo that ships the release.Developers adding "post later" to an app
Expose scheduling to your own users without building a queue, retry logic and per-platform rules yourself.Anyone replacing a manual scheduler with code
Keep the content in git or a CMS and let a job place it on the calendar.
Frequently asked questions
Is scheduling available on the free plan?
No. Free workspaces can publish immediately and save drafts. Scheduling is included from the Pro plan at $9.99 a month.
What format does scheduledAt use?
ISO 8601, for example 2026-12-01T14:00:00Z. It must be in the future. Add a timezone like America/New_York to schedule in local time.
Can I change a scheduled post?
Yes. Use PATCH /api/content/:id (or socifyr edit <id> --at <iso>) to change the text or the time while it is still scheduled.
What happens if one platform fails at publish time?
Each channel is tracked separately. If LinkedIn succeeds and X fails, the post is marked partially failed and POST /api/content/:id/retry re-sends only the failed channel.
Can I avoid duplicates if my scheduler retries the request?
Send an Idempotency-Key header on the create call. A repeated request with the same key returns the original result instead of creating a second post.