{"openapi":"3.1.0","info":{"title":"Superbridger free tools API","version":"1.0.0","description":"Free checks and reference data for posting to Instagram, Facebook, YouTube, TikTok, LinkedIn and X. No account or key; open to any origin. Facts checked 2026-11-06. The same tools as an MCP server: https://superbridger.com/api/tools/mcp.","contact":{"name":"Superbridger","url":"https://superbridger.com/contact"}},"servers":[{"url":"https://superbridger.com/api/tools"}],"externalDocs":{"description":"The free tools","url":"https://superbridger.com/free-tools"},"paths":{"/check-caption":{"post":{"operationId":"checkCaption","summary":"Count a caption the way each platform counts it","description":"X's weighted count (emoji 2, links 23), TikTok's UTF-16 units, YouTube's title and description bytes, Instagram's hashtags and mentions, against each platform's limit.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":100000,"description":"The post's text, hashtags included."},"title":{"description":"A YouTube title. Without one, the text's first line is used.","type":"string","maxLength":1000},"xPremium":{"description":"The X account has X Premium: 25,000 characters instead of 280.","type":"boolean"}},"required":["text"]}}}},"responses":{"200":{"description":"Each platform's counts, limits and whether the text fits.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"The input isn't valid; `issues` names the fields."}}}},"/check-video":{"post":{"operationId":"checkVideo","summary":"Check whether a video will post on each platform","description":"From the video's technical facts (as ffprobe reports them). The file itself isn't sent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileSizeBytes":{"type":"integer","minimum":0,"maximum":1000000000000,"description":"The file's size in bytes."},"durationSeconds":{"type":"number","minimum":0,"maximum":86400},"width":{"description":"Display width in pixels, after rotation.","type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":20000},"height":{"description":"Display height in pixels, after rotation.","type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":20000},"fps":{"type":"number","minimum":0,"exclusiveMinimum":true,"maximum":1000},"videoCodec":{"description":"h264, hevc, vp9, av1, prores… (ffprobe's codec_name, or avc1/hvc1 and the like).","type":"string","maxLength":40},"audioCodec":{"description":"aac, opus, mp3…, or none for a video without sound.","type":"string","maxLength":40},"audioSampleRate":{"description":"In Hz, such as 48000.","type":"number","minimum":0,"exclusiveMinimum":true,"maximum":1000000},"audioChannels":{"type":"integer","minimum":0,"maximum":64},"container":{"description":"mp4, mov, webm…","type":"string","maxLength":20},"hdr":{"type":"boolean"},"fastStart":{"description":"The index (moov) comes before the media data.","type":"boolean"},"language":{"description":"The messages' language (English by default).","type":"string","enum":["en","nl"]}},"required":["fileSizeBytes"]}}}},"responses":{"200":{"description":"A verdict per platform and placement (post, Story), with each check's level and message.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"The input isn't valid; `issues` names the fields."}}}},"/specs":{"get":{"operationId":"getPlatformSpecs","summary":"Every platform's posting limits","parameters":[{"name":"platform","in":"query","required":false,"description":"Only this platform.","schema":{"type":"string","enum":["instagram","facebook","youtube","tiktok","linkedin","x"]}}],"responses":{"200":{"description":"Text, hashtag, video, Story, photo and daily limits per platform, dated.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"The input isn't valid; `issues` names the fields."}}}},"/image-sizes":{"get":{"operationId":"getImageSizes","summary":"Recommended image sizes per platform, with sources","parameters":[{"name":"platform","in":"query","required":false,"description":"Only this platform.","schema":{"type":"string","enum":["instagram","facebook","youtube","tiktok","linkedin","x"]}}],"responses":{"200":{"description":"Sizes for posts, Stories, covers, banners, thumbnails and profile pictures.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"The input isn't valid; `issues` names the fields."}}}},"/safe-zones":{"get":{"operationId":"getSafeZones","summary":"Safe zones of Reels, TikTok and YouTube Shorts on a 1080×1920 video","responses":{"200":{"description":"Margins to keep clear at each edge, with sources.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"The input isn't valid; `issues` names the fields."}}}},"/utm":{"post":{"operationId":"buildUtmLinks","summary":"Tag a link with UTM parameters, per platform or for one source","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":2000,"description":"The link to tag; https:// is added when it's missing."},"campaign":{"type":"string","minLength":1,"maxLength":200},"medium":{"description":"social by default.","type":"string","maxLength":100},"content":{"description":"Tells posts in one campaign apart, such as reel-1.","type":"string","maxLength":200},"term":{"type":"string","maxLength":200},"source":{"description":"One source of your own. Without it, you get one link per platform.","type":"string","maxLength":100},"platforms":{"description":"Which platforms to make links for (all six by default).","maxItems":6,"type":"array","items":{"type":"string","enum":["instagram","facebook","youtube","tiktok","linkedin","x"]}},"tidy":{"description":"Lowercase, dashes for spaces (default true).","type":"boolean"}},"required":["url","campaign"]}}}},"responses":{"200":{"description":"The tagged links.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"The input isn't valid; `issues` names the fields."}}}}}}