Postpone Logo
Scheduling Posts

Facebook

Schedule posts, reels, and stories to Facebook pages

Mutation

Use the scheduleFacebookPost mutation to schedule posts to Facebook:

Mutation
mutation ScheduleFacebookPost($input: ScheduleFacebookPostInput!) {
  scheduleFacebookPost(input: $input) {
    success
    errors {
      field
      message
    }
    post {
      id
      socialAccount {
        id
        username
      }
      publishingStatus
      text
      firstComment
      gallery {
        id
        galleryMediaSet {
          id
          media {
            url
            mimeType
          }
        }
      }
      submissions {
        id
        postAt
        mediaType
        publishingMethod
      }
    }
  }
}

Input Parameters

ScheduleFacebookPostInput

username
String! required
The username of the connected Facebook page to post from
submissions
[FacebookPostSubmissionInputType!]! required
Array of submissions defining when and how to publish (minimum 1 submission)
text
String
The main text content of the Facebook post
firstComment
String
An optional first comment to add to the post after publishing
gallery
GalleryInput
Media attachments (images, videos) for the post
mediaName
String
Name of a file from your Content Library (case-insensitive)
mediaUrl
String
URL of media to upload and attach to the post
publishingStatus
PublishingStatusType
Publishing status. Options: READY_TO_PUBLISH, DRAFT (default: READY_TO_PUBLISH)
postTags
[ID!]
Array of post tag IDs to organize your content
id
ID
ID of existing post when updating (only for updates)

FacebookPostSubmissionInputType

Each submission in the array supports these parameters:

postAt
DateTime! required
When to publish the post (must be in the future)
mediaType
FacebookMediaType! required
Type of Facebook content. Options: POST, REEL, STORY
publishingMethod
PublishingMethodType
How to publish. Options: AUTOMATIC, MANUAL (default: AUTOMATIC)
id
ID
ID of existing submission when updating (only for updates)

Examples

Simple Facebook Post

Schedule a basic Facebook post with text only.

{
  "input": {
    "username": "myfacebookpage",
    "text": "Hello Facebook! This is our first scheduled post 🎉",
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "POST"
      }
    ]
  }
}

Facebook Post with Media URL

Schedule a Facebook post by uploading media from an external URL. The media will be automatically downloaded and added to your Content Library.

{
  "input": {
    "username": "myfacebookpage",
    "text": "Check out this amazing sunset! 🌅",
    "mediaUrl": "https://picsum.photos/seed/socialmedia/900/1600",
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "POST"
      }
    ]
  }
}

Facebook Post with Content Library Media

Schedule a Facebook post using media already in your Content Library. The search is case-insensitive and will use the first matching file based on its name.

{
  "input": {
    "username": "myfacebookpage",
    "text": "Sharing our company logo! 🏢",
    "mediaName": "company-logo.png",
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "POST"
      }
    ]
  }
}

Facebook Reel

Schedule a Facebook Reel with video content.

{
  "input": {
    "username": "myfacebookpage",
    "text": "Behind the scenes at our office! 🎬",
    "mediaUrl": "https://example.com/office-tour.mp4",
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "REEL"
      }
    ]
  }
}

Facebook Story

Schedule a Facebook Story that will appear in your page's story highlights.

{
  "input": {
    "username": "myfacebookpage",
    "mediaUrl": "https://picsum.photos/seed/socialmedia/900/1600",
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "STORY"
      }
    ]
  }
}

Facebook Post with First Comment

Schedule a Facebook post with an automatic first comment that will be posted after the main post is published.

{
  "input": {
    "username": "myfacebookpage",
    "text": "What do you think about our latest product update?",
    "firstComment": "Let us know in the comments below! We'd love to hear your feedback 💬",
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "POST"
      }
    ]
  }
}

Facebook Carousel Post

Schedule a Facebook post with multiple images in a carousel format.

{
  "input": {
    "username": "myfacebookpage",
    "text": "Take a look at our product gallery! 📸",
    "gallery": {
      "galleryMediaSet": [
        {
          "order": 0,
          "media": {
            "id": "MEDIA_ID_1"
          }
        },
        {
          "order": 1,
          "media": {
            "id": "MEDIA_ID_2"
          }
        },
        {
          "order": 2,
          "media": {
            "id": "MEDIA_ID_3"
          }
        }
      ]
    },
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "POST"
      }
    ]
  }
}

Manual Publishing

Schedule a Facebook post for manual publishing, which will require you to manually approve the post in your dashboard before it goes live.

{
  "input": {
    "username": "myfacebookpage",
    "text": "This post requires manual approval before publishing.",
    "submissions": [
      {
        "postAt": "2025-12-01T15:30:00Z",
        "mediaType": "POST",
        "publishingMethod": "MANUAL"
      }
    ]
  }
}

Response Types

Success Response

{
  "data": {
    "scheduleFacebookPost": {
      "success": true,
      "errors": [],
      "post": {
        "id": "123",
        "socialAccount": {
          "id": "456",
          "username": "myfacebookpage"
        },
        "publishingStatus": "READY_TO_PUBLISH",
        "text": "Hello Facebook! This is our first scheduled post 🎉",
        "firstComment": null,
        "gallery": null,
        "submissions": [
          {
            "id": "789",
            "postAt": "2025-12-01T15:30:00Z",
            "mediaType": "POST",
            "publishingMethod": "AUTOMATIC"
          }
        ]
      }
    }
  }
}

Error Response

{
  "data": {
    "scheduleFacebookPost": {
      "success": false,
      "errors": [
        {
          "field": "text",
          "message": "Facebook posts cannot exceed 63,206 characters."
        }
      ],
      "post": null
    }
  }
}

Validation Rules

The API enforces Facebook's content policies and technical limitations:
  • Text Length: Maximum 63,206 characters for post text
  • Media: Maximum 10 images/videos per carousel post
  • Video: Maximum 4GB file size for regular posts
  • Reels: 3-90 seconds duration, minimum 960x540 resolution, 9:16 aspect ratio recommended
  • Stories: 3-60 seconds duration for video, 9:16 aspect ratio recommended
  • Scheduling: Posts must be scheduled for future dates only
  • Account Limits: Respects your plan's monthly post limits

Media Type Guidelines

POST

  • Standard Facebook feed posts
  • Supports text, images, videos, and carousels
  • Best for general content sharing and engagement

REEL

  • Short-form vertical videos
  • 3-90 seconds duration
  • Minimum 960x540 resolution
  • 9:16 aspect ratio recommended for best results
  • Ideal for creative, engaging video content

STORY

  • Temporary content that appears in story highlights
  • 3-60 seconds for video content
  • 9:16 aspect ratio recommended
  • Perfect for behind-the-scenes content and quick updates

Common Errors