A social media scheduling API built for your app

Let users plan posts without making your team build 10 schedulers. Send the content, publish time, and time zone. Mallary handles the queue and each platform API.

Try For Free

Ship a useful social calendar with less work

Mallary gives your app one schedule while it handles the hard work behind the scenes.

Add scheduling faster

Give your app a social calendar without building a new queue and timer for each social network.

Post at the right local time

Send a date, time, and time zone. Mallary saves the publish time in UTC and keeps the original time zone.

Track every destination

Get one job for each platform. See what is waiting, what went live, and what needs your help.

Time zones without the guesswork

Use an exact time or a local time

Use an exact UTC time when your app already did the math. Or send the time your user picked and their time zone. Mallary will turn it into the right queue time.

Exact timestamp
"scheduled_at": "2026-10-30T18:00:00Z"
Local time and time zone
"scheduled_at": "2026-10-30T14:00",
"scheduled_timezone": "America/New_York"

Both times above mean tomorrow at 2 p.m. in New York when this page is generated. Choose your own future time. Use this request on your server with a paid plan and connected accounts. Replace the API key and media URL with your own; upload the media to Mallary first.

For a text-only cURL example and delivery checks, read how to schedule social media posts with an API.

Schedule a multi-platform postPOST
const response = await fetch('https://mallary.ai/api/v1/post', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    platforms: ['facebook', 'instagram', 'linkedin'],
    message: 'Our new feature goes live today.',
    media: [{
      url: 'https://files.mallary.ai/launch.mp4'
    }],
    scheduled_at: '2026-10-30T14:00',
    scheduled_timezone: 'America/New_York'
  })
});
const result = await response.json();
if (!response.ok) throw new Error(JSON.stringify(result));
console.log(result.jobs);

Save each jobs[].jobId. A queued response is not proof of publication. Check GET /api/v1/jobs/{id} after the publish time, or use status webhooks. Read the job status reference for results and any required action.

Exact publish times Local time zones Status webhooks
Ten social networks

Plan one post for every audience

Choose one or many connected platforms. Mallary creates a job for each one.

A simple scheduling flow

Add social media scheduling to your app in three steps

Connect accounts, send the post and publish time, then track each platform job. Mallary runs the queue and reports the result.

  1. 1

    Connect accounts and choose channels

    Let users connect their accounts in Mallary. Pick the platforms and add your message, media, and any platform options.

  2. 2

    Set the publish time

    Send one exact timestamp, or send a local time with an IANA time zone such as America/New_York.

  3. 3

    Watch the jobs

    Check each job, list grouped posts, or use webhooks. Edit or delete a scheduled post before publishing starts.

Tools your scheduler needs

Save unfinished drafts

Save text, media, and platforms without a date on any plan. Publish or schedule the saved draft when you are ready.

Exact publish times

Use a UTC or offset timestamp when your app already knows the exact moment.

Local time zones

Use a local wall-clock time and an IANA time zone when the audience cares about local time.

One grouped post

Schedule one post across many platforms and keep all platform jobs in one group.

Platform-specific content

Change captions, titles, post types, and other supported options for each destination.

Edit or cancel posts

Change a scheduled post, including its platforms or profile, or delete it before publishing starts.

Status webhooks

React when a post is scheduled, published, partly published, or failed.

Let Claude handle your social media posts

with a little help from the official Mallary Claude connector.

Social media scheduling API FAQ

Questions developers ask

Short answers about publish times, time zones, jobs, and plans.

Can I save a post without publishing it or choosing a date?

Yes, on any plan. Use POST /api/v1/drafts to save an unfinished post. Read, edit, or delete the draft by its ID. Only POST /api/v1/drafts/{id}/submit publishes or schedules it. Draft saves do not use your posting allowance. Normal plan and platform rules apply when you submit.

What is a social media scheduling API?

A social media scheduling API lets your app set a future time for a social post. The API saves the post, waits for that time, and then sends it to each chosen social platform.

How do I schedule social media posts with an API?

Send your normal POST /api/v1/post request and add scheduled_at. You can send an exact timestamp with a time zone offset, or pair a local time with scheduled_timezone.

Can I add social media scheduling to my app?

Yes. Let users connect their social accounts in Mallary. Your app sends the post and publish time through the API, then checks each platform job or listens for a webhook.

What do I need to build for a SaaS social media scheduler?

Build the editor, calendar, user permissions, and any approval steps your product needs. Mallary handles social account connections, the publish queue, platform jobs, retries, and status. Send scheduled_at with each post and save the returned job IDs so your app can show the result.

How does Mallary handle time zones?

You can send a local date and time with an IANA time zone such as America/New_York. Mallary turns it into UTC for the queue and returns the original scheduled_timezone when you read the grouped post.

Can one request schedule posts on many platforms?

Yes. Add any supported connected platforms to the platforms array. Mallary creates one job for each platform and keeps them together as one grouped post.

Can I edit a scheduled post?

Yes. Call GET /api/v1/posts/{id} to read the post and its revision. Then call PATCH /api/v1/posts/{id} to change its content, time, platforms, or connection profile before any platform starts publishing. One profile applies to the whole post group.

Can I cancel a scheduled post?

Yes. Call DELETE /api/v1/posts/{id} while the grouped post is still pending and publishing has not started.

How do I know when the scheduled post is live?

Check GET /api/v1/jobs/{id}, list grouped posts, or listen for webhooks. Finished jobs include a platform post ID and public URL when the platform provides them.

Which plans include API scheduling?

Scheduling is included with Starter, Pro, and Business plans. Paid plans can be tried free for 14 days.

Build your social scheduler on one API

Connect the accounts, copy your API key, and schedule your first multi-platform post.