Skip to main content
SocialCutter

SEO and reference

Social media image sizes: dimensions and ratios

Social media image sizes: exact ratio and pixels of each format, which size to use for every goal, and how to generate them all from one image with the API.

  • social media image sizes
  • social media dimensions
  • aspect ratio
  • centered crop
  • 1080x1080
  • 1080x1920
  • image API

What this guide covers

SocialCutter takes one master image and returns a cropped version for each destination. A destination is a platform and format pair: instagram + post, tiktok + cover, youtube + thumbnail.

The API covers 6 platforms, and this is the real response of GET /api/v1/platforms, the same table used by the web dashboard, the REST API and the MCP server. The pixels in the “Size” column are the exact dimensions of the output file, not a suggestion.

Image sizes by platform

PlatformFormatAspect ratioSize (pixels)What it is for
Instagrampost1:11080x1080Square feed post
Instagramstory9:161080x1920Story and vertical video
Instagramlandscape1.91:11080x566Horizontal feed post
Facebookpost1.91:11200x630Timeline post and link card
Facebookstory9:161080x1920Vertical story
Facebookcover2.63:1820x312Page cover
X (Twitter)post16:91200x675Image post in the timeline
X (Twitter)header3:11500x500Profile header
LinkedInpost1.91:11200x627Feed post
LinkedIncover5.9:11128x191Profile or page cover
YouTubethumbnail16:91280x720Video thumbnail
YouTubebanner16:92560x1440Channel banner
TikTokcover9:161080x1920Vertical video cover

These are the sizes SocialCutter generates. They are not a copy of the networks’ help pages: they are the real output catalogue of the API, and you can query it yourself at https://api.socialcutter.theboomer.dev/api/v1/platforms. If a network changes its upload requirements, always check its official help center before publishing.

You can print the table from the terminal:

curl -s "https://api.socialcutter.theboomer.dev/api/v1/platforms" | jq

Which size to use for each goal

GoalDestinationSize and ratio
Square feed postinstagram + post1080x1080 (1:1)
Story or vertical videoinstagram + story, facebook + story1080x1920 (9:16)
Horizontal timeline posttwitter + post1200x675 (16:9)
Post with a link cardfacebook + post, linkedin + post1200x630 and 1200x627 (1.91:1)
X profile headertwitter + header1500x500 (3:1)
LinkedIn coverlinkedin + cover1128x191 (5.9:1)
YouTube video thumbnailyoutube + thumbnail1280x720 (16:9)
YouTube channel banneryoutube + banner2560x1440 (16:9)
TikTok video covertiktok + cover1080x1920 (9:16)
Image for a website or blogno destination: use the masterWhatever the CMS needs

If the goal is to cover the most slots at the lowest cost, the best pair is 1:1 + 9:16: it covers the square feed and every vertical story and cover for 2 uses.

There is no 4:5 in the catalogue

The 4:5 ratio is widely used in the Instagram feed, but no 4:5 destination exists in the API. There are two honest options:

  1. Crop the 4:5 separately. At a width of 1080 pixels, an exact 4:5 measures 1080x1350. No destination produces it: crop it in your editor before or after.
  2. contain over instagram + post. The whole image is fitted inside the 1:1 canvas and the gap is filled with background_color, without cropping anything from the original. The resulting file is still a 1080x1080 square: you gain the uncropped image, not a 4:5.

What you will not find is a fit_mode that turns a 1:1 into a 4:5. It does not exist.

Generate every size from a single image

From the web

  1. Open the dashboard at https://dash.socialcutter.theboomer.dev.
  2. Upload the master image (5 MB maximum) or paste its public URL.
  3. Tick the destinations you need from the table above.
  4. Pick the fit mode: cover to crop, contain to fit the whole image.
  5. Download one image per destination from the history.

From the API: one request, several sizes

curl -s -X POST "https://api.socialcutter.theboomer.dev/api/v1/images/process" \
  -H "X-API-Key: sc_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "source": { "type": "url", "value": "https://example.com/master.jpg" },
    "destinations": [
      { "platform": "instagram", "format": "post" },
      { "platform": "instagram", "format": "story" },
      { "platform": "linkedin", "format": "post" },
      { "platform": "youtube", "format": "thumbnail" }
    ],
    "options": { "fit_mode": "cover", "format": "webp", "quality": 85 }
  }' | jq

That request costs 4 uses (1 per destination) and returns four URLs, one per destination, each with its platform, format and dimensions. For a local file, upload the binary as multipart:

curl -s -X POST "https://api.socialcutter.theboomer.dev/api/v1/images/process/upload" \
  -H "X-API-Key: sc_your_key" \
  -F "file=@./master.jpg" \
  -F 'destinations=[{"platform":"instagram","format":"post"},{"platform":"tiktok","format":"cover"}]' | jq

From an LLM or agent (MCP)

With the MCP server connected you write no HTTP: ask “process this image for Instagram post, LinkedIn post and TikTok cover” and the model calls the process_image tool with those destinations. The MCP exposes 28 tools over the same API.

Fit modes

fit_modeWhat it does
coverScales and crops the excess with a centered crop. This is the default.
containFits the whole image and pads the gap with background_color.
fillStretches the image to fill the gap; it may distort it.
stretchForces the exact dimensions.

None of the four analyses the image content. The cover crop is geometric and centered.

Common mistakes

MistakeWhat actually happensWhat to do
Uploading a 1:1 image where a 9:16 slot goesThe centered crop drops the top and bottom edges, or the framing is not what you expectedRequest the story or cover destination (1080x1920) and check the framing before publishing
Text cut off at the edgecover crops the excess from the center: whatever touches the edge is lostLeave a margin around the text in the master, or use contain
Blurry image from upscalingA small master upscaled to the YouTube banner (2560x1440) loses detailStart from an original at least 2560 px wide for that destination; never request sizes larger than the master
413 error on uploadThe file is over 5 MBShrink the master or serve a lighter version over a URL
Expecting it to crop the important partThe image content is not analysed: nothing decides what mattersFrame the subject near the center of the master
Expecting the image to appear publishedThe API only generates files and returns URLsPublish through the social network API, your CMS or your automation tool

What SocialCutter does not do

  • It is not a photo editor. It does not fix colour or exposure, does not remove backgrounds, does not compose text over the image and does not retouch anything. It produces cropped and scaled versions of the image you give it.
  • It does not decide the framing. The crop is centered and deterministic: the image content is not analysed, nothing decides which part matters.
  • It does not post to social networks. It returns file URLs. Publishing belongs to the caller.
  • It does not accept files over 5 MB on upload.

For retouching, compositing or montage, use a photo editor; for the exact size of each network, use SocialCutter.

Next steps

Frequently asked questions

What size is a square Instagram post?

1080x1080 pixels, a 1:1 aspect ratio. It is the instagram + post destination in the catalogue, and the output file has exactly those dimensions.

Does SocialCutter generate the 4:5 format?

No. The catalogue has no 4:5 destination. An exact 4:5 has to be cropped separately; as a fallback, contain over instagram post fits the whole image into the 1:1 canvas and pads with background_color, but the resulting file is still square.

How many sizes can I get from a single image?

As many destinations as you ask for in one request, up to the 13 destinations available across the 6 platforms. Each destination costs 1 use, and duplicate destinations in the same request are not charged twice.

Does the crop detect the face or the main subject?

No. The crop is centered and deterministic: the image content is not analysed, so nothing decides which part matters. It works well with product photos, screenshots and creatives with the subject near the center.

Why does my YouTube banner look blurry?

Because the banner is 2560x1440 pixels. If you start from a smaller master, upscaling to that size loses detail. Always start from an original at least 2560 pixels wide when you request that destination.

Does the API publish the image to the social network?

No. The API generates the correctly sized files and returns one URL per destination. Publishing is up to you or to the tool that calls the API.