Social media image sizes, API
Every size in one table, each with its source and whether the network itself states it, plus a resizer that crops your image to any of them without uploading it.
- Endpoint:
GET https://postboost.co/app/api/tools/social-media-image-sizes(operationIdgetImageSizes) - Web tool: postboost.co/tools/social-media-image-sizes
- Token: optional (limits)
- MCP: tool
get-image-sizesonhttps://postboost.co/mcp/tools
Request
| Query parameter | Type | Default | Description |
|---|---|---|---|
network | string | Network key, e.g. instagram. Omit it for every network; an unknown key is a 422 that lists the allowed ones. |
Call it
- curl
- Python
- Node.js
- PHP
- Go
- Ruby
- Java
- C#
- Rust
- CLI
curl 'https://postboost.co/app/api/tools/social-media-image-sizes?network=bluesky'
from postboost import ApiClient, Configuration
from postboost.api.free_tools_api import FreeToolsApi
with ApiClient(Configuration()) as client:
api = FreeToolsApi(client)
result = api.get_image_sizes(network='bluesky')
print(result.to_dict())
import { FreeToolsApi } from 'postboost';
const api = new FreeToolsApi();
const { body } = await api.getImageSizes('bluesky');
console.log(body);
use PostBoostClient\Api\FreeToolsApi;
$api = new FreeToolsApi(new GuzzleHttp\Client());
$result = $api->getImageSizes("bluesky");
echo $result;
import (
"context"
"fmt"
postboost "github.com/postboost-co/postboost-go"
)
client := postboost.NewAPIClient(postboost.NewConfiguration())
result, _, err := client.FreeToolsAPI.GetImageSizes(context.Background()).Network("bluesky").Execute()
fmt.Println(result, err)
require 'postboost'
api = PostBoost::FreeToolsApi.new
result = api.get_image_sizes(network: 'bluesky')
puts result.to_hash
import com.postboost.ApiClient;
import com.postboost.api.FreeToolsApi;
import com.postboost.model.FreeToolGetImageSizesResponse;
FreeToolsApi api = new FreeToolsApi(new ApiClient());
FreeToolGetImageSizesResponse result = api.getImageSizes("bluesky");
System.out.println(result.toJson());
using PostBoost.Client.Api;
using PostBoost.Client.Client;
var api = new FreeToolsApi(new Configuration());
var result = await api.GetImageSizesAsync("bluesky");
Console.WriteLine(result.ToJson());
use postboost::apis::configuration::Configuration;
use postboost::apis::free_tools_api;
let config = Configuration::new();
let result = free_tools_api::get_image_sizes(&config, Some("bluesky")).await?;
println!("{:?}", result);
./postboost-cli getImageSizes network='bluesky'
With a token, send Authorization: Bearer YOUR_API_TOKEN as a default header (how, per SDK).
Response
{
"sizes": [
{
"network": "Bluesky",
"network_key": "bluesky",
"placement": "Profile photo",
"format_key": "profile-photo",
"size": "1000×1000",
"width": 1000,
"height": 1000,
"ratio": "1:1",
"limits": "Post images are stored at 1000 px on the long side",
"basis": "common practice",
"source": "Hootsuite"
},
{
"network": "Bluesky",
"network_key": "bluesky",
"placement": "Banner",
"format_key": "banner",
"size": "3000×1000",
"width": 3000,
"height": 1000,
"ratio": "3:1",
"limits": "",
"basis": "common practice",
"source": "Hootsuite"
}
],
"last_verified": "2026-10-13",
"sources": [
{
"label": "Sprout Social, social media image sizes guide (updated 2026-05-11)",
"url": "https://sproutsocial.com/insights/social-media-image-sizes-guide/"
},
{
"label": "Hootsuite, social media image sizes guide (2026-10-01)",
"url": "https://blog.hootsuite.com/social-media-image-sizes-guide/"
}
]
}
With MCP
Connect https://postboost.co/mcp/tools (setup) and ask, for example: Get social media image sizes per network, each with its source with the PostBoost get-image-sizes tool.
Errors
| Status | When |
|---|---|
401 | The Authorization header holds an invalid token. Leave it out to call as a guest. |
413 | The JSON body is larger than 128 KB. |
422 | A field is invalid; the body lists the errors per field. |
429 | A limit is reached; see limits. |