YouTube thumbnail size checker API
Check your thumbnail against YouTube's published requirements, see where the duration badge roughly covers it, and export a 16:9 copy, all without uploading the image.
- Endpoint:
POST https://postboost.co/app/api/tools/youtube-thumbnail-size-checker(operationIdcheckYoutubeThumbnail) - Web tool: postboost.co/tools/youtube-thumbnail-size-checker
- Token: optional (limits)
- MCP: tool
check-youtube-thumbnailonhttps://postboost.co/mcp/tools
Request
| Field | Type | Default | Description |
|---|---|---|---|
width | integer | Image width in pixels. | |
height | integer | Image height in pixels. | |
file_size_bytes | integer | File size in bytes. | |
format | string | MIME type, e.g. image/png or image/jpeg. |
Call it
- curl
- Python
- Node.js
- PHP
- Go
- Ruby
- Java
- C#
- Rust
- CLI
curl -X POST https://postboost.co/app/api/tools/youtube-thumbnail-size-checker \
-H 'Content-Type: application/json' \
-d '{"width":1280,"height":720,"file_size_bytes":921600,"format":"image/png"}'
from postboost import ApiClient, Configuration
from postboost.api.free_tools_api import FreeToolsApi
from postboost.models import FreeToolCheckYoutubeThumbnailRequest
with ApiClient(Configuration()) as client:
api = FreeToolsApi(client)
result = api.check_youtube_thumbnail(FreeToolCheckYoutubeThumbnailRequest.from_dict({"width": 1280, "height": 720, "file_size_bytes": 921600, "format": "image/png"}))
print(result.to_dict())
import { FreeToolsApi } from 'postboost';
const api = new FreeToolsApi();
const { body } = await api.checkYoutubeThumbnail({ width: 1280, height: 720, fileSizeBytes: 921600, format: "image/png" });
console.log(body);
use PostBoostClient\Api\FreeToolsApi;
use PostBoostClient\Model\FreeToolCheckYoutubeThumbnailRequest;
$api = new FreeToolsApi(new GuzzleHttp\Client());
$result = $api->checkYoutubeThumbnail(new FreeToolCheckYoutubeThumbnailRequest(['width' => 1280, 'height' => 720, 'file_size_bytes' => 921600, 'format' => "image/png"]));
echo $result;
import (
"context"
"encoding/json"
"fmt"
postboost "github.com/postboost-co/postboost-go"
)
var request postboost.FreeToolCheckYoutubeThumbnailRequest
if err := json.Unmarshal([]byte(`{"width":1280,"height":720,"file_size_bytes":921600,"format":"image/png"}`), &request); err != nil {
panic(err)
}
client := postboost.NewAPIClient(postboost.NewConfiguration())
result, _, err := client.FreeToolsAPI.CheckYoutubeThumbnail(context.Background()).FreeToolCheckYoutubeThumbnailRequest(request).Execute()
fmt.Println(result, err)
require 'postboost'
api = PostBoost::FreeToolsApi.new
result = api.check_youtube_thumbnail(PostBoost::FreeToolCheckYoutubeThumbnailRequest.new({ width: 1280, height: 720, file_size_bytes: 921600, format: "image/png" }))
puts result.to_hash
import com.postboost.ApiClient;
import com.postboost.api.FreeToolsApi;
import com.postboost.model.FreeToolCheckYoutubeThumbnailRequest;
import com.postboost.model.FreeToolCheckYoutubeThumbnailResponse;
FreeToolsApi api = new FreeToolsApi(new ApiClient());
FreeToolCheckYoutubeThumbnailRequest request = FreeToolCheckYoutubeThumbnailRequest.fromJson("{\"width\":1280,\"height\":720,\"file_size_bytes\":921600,\"format\":\"image/png\"}");
FreeToolCheckYoutubeThumbnailResponse result = api.checkYoutubeThumbnail(request);
System.out.println(result.toJson());
using Newtonsoft.Json;
using PostBoost.Client.Api;
using PostBoost.Client.Client;
using PostBoost.Client.Model;
var api = new FreeToolsApi(new Configuration());
var request = JsonConvert.DeserializeObject<FreeToolCheckYoutubeThumbnailRequest>(@"{""width"":1280,""height"":720,""file_size_bytes"":921600,""format"":""image/png""}");
var result = await api.CheckYoutubeThumbnailAsync(request);
Console.WriteLine(result.ToJson());
use postboost::apis::configuration::Configuration;
use postboost::apis::free_tools_api;
use postboost::models::FreeToolCheckYoutubeThumbnailRequest;
let config = Configuration::new();
let request: FreeToolCheckYoutubeThumbnailRequest = serde_json::from_str(r##"{"width":1280,"height":720,"file_size_bytes":921600,"format":"image/png"}"##)?;
let result = free_tools_api::check_youtube_thumbnail(&config, request).await?;
println!("{:?}", result);
echo '{"width":1280,"height":720,"file_size_bytes":921600,"format":"image/png"}' | ./postboost-cli --content-type application/json checkYoutubeThumbnail -
With a token, send Authorization: Bearer YOUR_API_TOKEN as a default header (how, per SDK).
Response
{
"ok": true,
"checks": [
{
"key": "ratio",
"label": "Aspect ratio",
"status": "pass",
"detail": "16:9, needs 16:9"
},
{
"key": "width",
"label": "Width",
"status": "pass",
"detail": "1280 px, needs at least 640 px"
},
{
"key": "file_size",
"label": "File size",
"status": "pass",
"detail": "0.88 MB, needs 2 MB or less"
},
{
"key": "format",
"label": "Format",
"status": "pass",
"detail": "PNG"
}
]
}
With MCP
Connect https://postboost.co/mcp/tools (setup) and ask, for example: Check a YouTube thumbnail's ratio, width, file size and format against YouTube's requirements with the PostBoost check-youtube-thumbnail 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. |