Facebook posting

Post and schedule to your Facebook Page

Status 200 Uploads publishes text posts, photos, videos and Reels to the Facebook Page you connect, straight away or at a time you schedule. Write the post once in the dashboard, or send it from the REST API, Python, n8n or an AI app such as Claude. You sign in on Facebook itself and pick the Page; our own Meta app does the posting.

  • Checked on

Facebook at a glance

Where posts go
To the Facebook Page of the connection. The account's posting options name that Page.
What you can post
Text on its own, one photo, several photos in one post, a video or a Reel.
Largest video
5 GB per file. File limits of every network
Largest image
10 MB per image, checked in the dashboard; through the API, Facebook itself decides.
Reels
Facebook takes Reels of 3 to 90 seconds.
Caption
Up to 63,206 characters. A dry run or a scheduled post flags a longer one (caption_over_limit).
Scheduling
Schedule a post up to 365 days ahead, or send it now.
Plans
Facebook is on every plan, Free included. Pricing
How it connects
You sign in on Facebook itself (OAuth), so we never see your Facebook password.
Your own Meta app
Not needed: our Meta app publishes for you, so there is no app review to go through on your side.

What you can post to Facebook

Text posts

Words only, with no photo or video. Send a post with no media field (or postType text) and it appears on the Page as a status update.

Photo posts

One photo with your caption. The dashboard checks that it is at most 10 MB; through the API, Facebook itself decides whether it takes the image.

Posts with several photos

Several photos with one caption, published together as one post on the Page instead of one post per photo.

Video posts

One video file is published as an ordinary Page video, up to 5 GB. Whether a file is a video is read from the end of its address (.mp4, .mov, .webm or .m4v).

Reels

Set postType reel and the same video is published as a Facebook Reel instead of a Page video. Reels must be 3 to 90 seconds long, and a Reel or a video post sent with a picture is refused before Facebook is called.

Facebook settings

Each setting by its name in the dashboard, its field in the REST API and its option in the AI connector. Every one here has been used in a real post or a dated live test.

Facebook settings in the dashboard, the REST API and the AI connector
SettingDashboardREST fieldAI connector optionWhat it does
Post typePost Typefacebook.postTypepost_typeText, photo, video or Reel. Leave it out and we choose: text when there is no media field, a video for one video file, otherwise a photo.

What we change for you, and tell you

When we change or flag something in a Facebook post, the answer (and History) names it with one of these codes. Your original file is never changed.

  • unknown_field: A field we do not read is not used, and the answer says so (with the field name we think you meant, when there is one). The post still goes out.

  • field_not_used: A field we read but could not use for this post (for example another network's block, or a setting that does not apply to this kind of post) is named in the answer. The post still goes out.

  • options_outside_post: An option sent next to "post" instead of inside it is not used, and the answer says where it belongs.

  • media_url_not_kept: A scheduled post that names its media by web address fetches the file when it goes out, and we keep no copy: the answer reminds you the file must still be there then.

  • posts_close_together: The answer warns when another Facebook post of the account is scheduled within 20 seconds: leave at least a minute between them.

  • caption_over_limit: In a dry run or a scheduled post, a caption longer than Facebook allows is flagged. We send it as it is; Facebook may refuse it or cut it short.

  • moved_to_next_day: When the daily limit of the profile is reached while a scheduled post is going out, the networks that did not fit move to the next day as a scheduled post of their own, and the post read back says so.

  • queued_for_next_day: On a plan with a daily limit, a post over the day's limit is queued for the next day instead of failing (answer 202), and the answer gives the time.

Post to Facebook your way

The same Facebook post from the dashboard, the REST API, Python, n8n or an AI app.

From the dashboard

  1. Under Connections, connect Facebook: sign in on Facebook and choose the Page to post to.
  2. In Schedule, write the post and add a photo or a video, or leave the media out for a text post.
  3. Pick Facebook, set the post type to Reel if the video should be one, and post now or schedule it.

Connect Facebook →

From the REST API

Publish an uploaded video as a Facebook Reel (POST /api/v2/posts)
curl -X POST 'https://status200uploads.com/api/v2/posts' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer rl_your_api_key' \
  -d '{
    "post": {
      "accountId": "@yourpage",
      "platform": "facebook",
      "content": {
        "text": "Thirty seconds in our workshop",
        "mediaID": ["YOUR_FILE_ID"]
      },
      "facebook": { "postType": "reel" }
    }
  }'

Full page →

From Python

A text post to the Page with the status200uploads package
from status200uploads import Status200

s200 = Status200()  # uses STATUS200_API_KEY

update = {
    "accountId": "@yourpage",
    "platform": "facebook",
    "content": {"text": "We are closed on Monday for the holiday. See you Tuesday!"},
}
result = s200.publish(update, wait=True)  # reads the post back until Facebook has it
print(result.final.get("permalink") if result.final else result.code)

Full page →

From n8n

  1. Add an HTTP Request node at the end of the workflow, method POST, address https://status200uploads.com/api/v2/posts.
  2. Headers: Authorization Bearer rl_your_key, Content-Type application/json, and an Idempotency-Key such as {{ $json.id }}-facebook, so a retried execution never posts twice to the Page.
  3. Body: the JSON below. Drop the mediaID line and the post becomes a text post.
The HTTP Request body for a photo post
{
  "post": {
    "accountId": "@yourpage",
    "platform": "facebook",
    "content": {
      "text": "{{ $json.message }}",
      "mediaID": ["{{ $json.photoId }}"]
    },
    "facebook": { "postType": "photo" }
  }
}

Full page →

From an AI app

Post "We are closed on Monday for the holiday" to our Facebook Page now, with no picture.

The app looks up the profile with status200_list_accounts, sends a text post with post_type text through status200_validate_post and then status200_publish_post, and gives you the post's link from the answer.

Full page →

Facebook errors you may see

The code in the answer, what it means and what to do. Each one is in the API reference.

Facebook error codes
HTTPCodeWhat it meansWhat to do
401reconnect_requiredFacebook no longer accepts the saved sign-in.Reconnect Facebook on the Connections page and send the post again.
400media_wrong_for_post_typeA Reel or a video post was sent with a picture. Nothing was sent to Facebook.Send a video file, or choose postType photo.
403forbiddenFacebook refused the post with a 403 that named no code of its own.Read Facebook's reason in the message; if it is about the sign-in or the Page, reconnect Facebook under Connections.
500platform_errorFacebook answered with a server error that named no code.Send it again once, with the same Idempotency-Key.
413MEDIA_TOO_LARGEThe file is larger than Facebook takes through us.Use a video of at most 5 GB.
404media_not_foundThe mediaID is not one of your files, or it was removed after 7 days.Upload the file again and use its new mediaID.

Facebook questions

Start posting to Facebook

Facebook is on every plan, Free included. Everything on this page was checked on 26 October 2026.