# SML OmniPost > One post → native, validated posts for 14 social platforms. BYOK web app for creators and an x402-paid API + MCP server for AI agents. Built by Script Master Labs LLC (SDVOSB, Kinston NC). OmniPost rewrites a single source post into platform-native versions for X, Threads, Instagram, TikTok, YouTube, LinkedIn, Facebook, Pinterest, Reddit, Discord, Telegram, WhatsApp, Google Business Profile and Bluesky. Every variant is checked against verified platform limits and auto-repaired. It never invents facts, prices or claims. ## Pricing - Free web app: bring your own model key (Anthropic, OpenAI, Gemini, OpenRouter), up to 5 platforms per fan-out, validator, share intents. Keys stay in your browser. - Pro: 29 USDC per 30 days — all 14 platforms, media pack (every ratio from one image), direct publish (Discord, Telegram, Bluesky, Zapier/Make/n8n webhooks), campaigns, bulk mode, 5 brand profiles. - Agency: 69 USDC per 30 days — everything in Pro, 100 brand profiles, client workspaces, white-label export. - Agent API (x402 v2, USDC on Base mainnet): fan-out 0.05 USDC (hosted model) or 0.01 USDC (your key); media pack 0.01 USDC; publish 0.01 USDC. Platform specs, validation and share intents are free. - Failed jobs are never charged: payment is verified, the job runs, and settlement happens only on success. ## Verified platform specs (2026-10-29) | Platform | Text limit | Title limit | Hashtag cap | Image | |---|---|---|---|---| | X | 280 | — | no cap | 16:9 (1600×900) | | Threads | 500 | — | 1 | 4:5 (1080×1350) | | Instagram | 2,200 | — | 5 | 4:5 (1080×1350) | | TikTok | 2,200 | — | no cap | 9:16 (1080×1920) | | YouTube | 5,000 | 100 | no cap | 16:9 (1280×720) | | LinkedIn | 3,000 | — | no cap | 1:1 (1200×1200) | | Facebook | 63,206 | — | no cap | 4:5 (1080×1350) | | Pinterest | 500 | 100 | no cap | 2:3 (1000×1500) | | Reddit | 40,000 | 300 | 0 | 4:3 (1200×900) | | Discord | 2,000 | — | 0 | 16:9 (1600×900) | | Telegram | 4,096 | — | no cap | 1:1 (1080×1080) | | WhatsApp | no verified cap | — | 0 | 9:16 (1080×1920) | | Google Business | 1,500 | — | 0 | 4:3 (1200×900) | | Bluesky | 300 | — | no cap | 16:9 (1600×900) | ## Agent endpoints - MCP (Streamable HTTP): https://sml-omnipost.vercel.app/mcp - OpenAPI: https://sml-omnipost.vercel.app/openapi.json - x402 manifest: https://sml-omnipost.vercel.app/.well-known/x402 - Payment contract: network eip155:8453, asset USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0xc29185fa176357612f3194735753e520e91adc46, facilitator Coinbase CDP, headers PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE - Free: GET https://sml-omnipost.vercel.app/api/v1/platforms · POST https://sml-omnipost.vercel.app/api/v1/validate · POST https://sml-omnipost.vercel.app/api/v1/intents - Paid: POST https://sml-omnipost.vercel.app/api/v1/fanout · POST https://sml-omnipost.vercel.app/api/v1/fanout/byok · POST https://sml-omnipost.vercel.app/api/v1/media-pack · POST https://sml-omnipost.vercel.app/api/v1/publish ## MCP tools - omnipost_platform_specs: FREE. Verified character limits, title limits, hashtag caps, image ratios/pixel sizes, link behavior and publishing method for 14 social platforms. Use before writing any social post. - omnipost_validate: FREE. Deterministically checks platform-specific post variants against verified limits (X weighted count, Instagram 5-hashtag cap, Telegram caption limit, title limits, dead links, hook-below-fold) and returns a 0–100 format-compliance Fit Score per platform. - omnipost_share_intents: FREE. Builds official one-tap share URLs (X, Threads, LinkedIn, Reddit, WhatsApp, Telegram, Bluesky, Pinterest, Facebook) for each variant, plus copy-and-open targets for Instagram, TikTok, YouTube and Google Business. - omnipost_payment_contract: FREE. x402 v2 payment terms for OmniPost paid tools: network, USDC asset, payTo, facilitator, headers and current prices. - omnipost_fanout: PAID x402 ($0.05 USDC hosted model, or $0.01 with your own provider key). Rewrites one post into native versions for up to 14 platforms, validates every variant, auto-repairs violations, and returns hooks, Fit Scores and share intents. Never invents facts. - omnipost_media_pack: PAID x402 ($0.01 USDC). Turns one image into every platform's exact ratio and pixel size (16:9, 4:5, 1:1, 9:16, 2:3, 4:3) with focal-point cropping. Returns data URLs. - omnipost_publish: PAID x402 ($0.01 USDC per call, up to 20 targets). Publishes directly to Discord (webhook), Telegram (bot), Bluesky (app password) and any Zapier/Make/n8n webhook. Credentials are used once and never stored. ## Links - App: https://sml-omnipost.vercel.app/ - Agents & API docs: https://sml-omnipost.vercel.app/#agents - Script Master Labs: https://scriptmasterlabs.com - Contact: ScriptMasterLabs@gmail.com ## Full platform notes ### X - Text: 280 (aim 71–140) - Hashtags: no cap (recommend 1–2) - Links: clickable; every URL counts as 23 characters - Image: 16:9, 1600×900 px - Notes: Free-account limit. Premium allows long posts (25,000). - Sources: https://app.ayrshare.com/docs/help-center/technical-support/character_limits ### Threads - Text: 500 (aim 100–400) - Hashtags: 1 (recommend 1–1) - Links: clickable; reported not to count toward the limit - Image: 4:5, 1080×1350 px - Notes: One topic tag per post. Chain posts for long-form. - Sources: https://socialk.it/en/tools/threads-character-counter, https://www.oneupapp.io/blog/what-is-the-character-limit-on-threads ### Instagram - Text: 2200 (aim 125–600) - Hashtags: 5 (recommend 3–5) - Links: not clickable in captions — use 'link in bio' - Image: 4:5, 1080×1350 px - Notes: 5-hashtag cap rolled out from Dec 2025 (caption + comments combined). Hook must land in first ~125 characters. - Sources: https://later.com/blog/instagram-hashtags/, https://www.inro.social/tools/instagram-hashtag-generator ### TikTok - Text: 2200 (aim 50–300) - Hashtags: no cap (recommend 3–6) - Links: not clickable in captions - Image: 9:16, 1080×1920 px - Notes: 2,200 is the Content Posting API cap; the app allows ~4,000. OmniPost uses the API-safe cap. - Sources: https://socialk.it/en/tools/tiktok-character-counter, https://recurpost.com/tiktok-scheduler/tiktok-character-limits-and-hashtags/ ### YouTube - Text: 5000 (aim 200–1500) - Title: 100 - Hashtags: no cap (recommend 2–3) - Links: clickable in description - Image: 16:9, 1280×720 px - Notes: 16:9 thumbnail at 1280×720. Shorts use 9:16. - Sources: https://app.ayrshare.com/docs/help-center/technical-support/character_limits ### LinkedIn - Text: 3000 (aim 600–1300) - Hashtags: no cap (recommend 3–5) - Links: clickable - Image: 1:1, 1200×1200 px - Notes: Professional register. First ~210 characters show before 'see more'. - Sources: https://app.ayrshare.com/docs/help-center/technical-support/character_limits ### Facebook - Text: 63206 (aim 40–250) - Hashtags: no cap (recommend 0–2) - Links: clickable - Image: 4:5, 1080×1350 px - Notes: Short posts get read; the limit is rarely the constraint. - Sources: https://app.ayrshare.com/docs/help-center/technical-support/character_limits ### Pinterest - Text: 500 (aim 150–500) - Title: 100 - Hashtags: no cap (recommend 0–3) - Links: destination link per pin (max 2,048) - Image: 2:3, 1000×1500 px - Notes: Search engine, not a feed — keyword-rich title and description win. - Sources: https://app.ayrshare.com/docs/help-center/technical-support/character_limits ### Reddit - Text: 40000 (aim 300–2000) - Title: 300 - Hashtags: 0 (recommend 0–0) - Links: clickable - Image: 4:3, 1200×900 px - Notes: No hashtags, no hype. Value-first or it gets removed. Some posting APIs cap the body at 5,000. - Sources: https://typecount.com/blog/threads-character-limit, https://app.ayrshare.com/docs/help-center/technical-support/character_limits ### Discord - Text: 2000 (aim 100–800) - Hashtags: 0 (recommend 0–0) - Links: clickable; markdown supported - Image: 16:9, 1600×900 px - Notes: Webhook content limit is 2,000 (Nitro users get 4,000, webhooks do not). - Sources: https://www.itgeared.com/what-is-the-character-limit-on-discord/ ### Telegram - Text: 4096 (aim 100–1000) - Hashtags: no cap (recommend 0–3) - Links: clickable - Image: 1:1, 1080×1080 px - Notes: 4,096 for text messages; 1,024 when sent as a photo caption. - Sources: https://docs.python-telegram-bot.org/en/v13.0/telegram.constants.html ### WhatsApp - Text: no verified cap (aim 50–500) - Hashtags: 0 (recommend 0–0) - Links: clickable - Image: 9:16, 1080×1920 px - Notes: No verified hard cap on message length — OmniPost targets a phone-screen read. 9:16 for Status. - Sources: none — no hard cap asserted ### Google Business - Text: 1500 (aim 150–300) - Hashtags: 0 (recommend 0–0) - Links: via CTA button - Image: 4:3, 1200×900 px - Notes: Search & Maps show ~250 characters before 'more'. Put the offer first. - Sources: https://support.buffer.com/articles/using-google-business-profiles-with-buffer-CWwIBEqMjj, https://socialk.it/es/tools/google-business-character-counter ### Bluesky - Text: 300 (aim 80–280) - Hashtags: no cap (recommend 0–2) - Links: clickable (rich facets) - Image: 16:9, 1600×900 px - Notes: Bonus 14th network — publishes directly with an app password. - Sources: https://app.ayrshare.com/docs/help-center/technical-support/character_limits