Validate character count
Check weighted character count per platform and whether the text is within each platform's limit.
X uses weighted counting (URLs = 23 chars via t.co, emojis = 2 chars). All other platforms use plain character length.
Returns counts and limits for all 15 supported platform variants.
X returns two rows and this endpoint cannot tell you which one applies to you: it takes only text, so it never resolves an account. twitter (280) is the free tier limit. twitterPremium (25000) applies only when the target X account has a paid X subscription, and publishing enforces 280 instead for any post carrying a poll (this endpoint has no poll input, so the twitterPremium row always shows 25000). A free account trusting the twitterPremium row can pass validation here and still fail at publish time, where the account's real limit is enforced.
To validate against the per-account limit, use POST /v1/tools/validate/post instead: it accepts an accountId per platform entry, resolves X Premium status, and checks the text against the limit publishing enforces, including the poll cap. A missing, foreign, or invalid accountId falls back to the conservative 280.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
{ "text": "string", "platforms": { "property1": { "count": 0, "limit": 0, "valid": true }, "property2": { "count": 0, "limit": 0, "valid": true } }}Validate media URL
Check if a media URL is accessible and return metadata (content type, file size) plus per-platform size limit comparisons. Performs a HEAD request (with GET fallback) to detect content type and size. Rejects private/localhost URLs for SSRF protection. Platform limits are sourced from each platform's actual upload constraints.
Validate post content
Dry-run the full post validation pipeline without publishing. Catches issues like missing media for Instagram/TikTok/YouTube, hashtag limits, invalid thread formats, Facebook Reel requirements, and character limit violations. Accepts the same body as POST /v1/posts. Does NOT validate accounts, process media, or track usage. Account lookups are limit-only: a twitter accountId is resolved, scoped to the caller, only to pick the 280 vs 25000 character limit. Missing, foreign, or invalid ids fall back to 280 and never error. Returns errors for failures and warnings for near-limit content (>90% of character limit).