---
title: "Validate character count"
method: POST
path: "/v1/tools/validate/post-length"
tags: ["Validate"]
---

# Validate character count

`POST /v1/tools/validate/post-length`

Check weighted character count per platform and whether the text is within each platform's limit.

Twitter/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 (Twitter) 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.

## Request body

- object
  - `text` string, required — The post text to check

## Response `200`

Character counts per platform

- object
  - `text` string
  - `platforms` object

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zernio/zernio-api/revisions/bdd771244d76/schema)
