There are two different limits: what the platform accepts and what people see before they tap. The second one decides whether your hook lands.
X weights characters: every link it recognises counts as 23, and emoji and Chinese, Japanese or Korean characters count as 2.
TikTok and YouTube don’t publish where they cut a caption or a description, so those two screens are our own estimates (about 90 and 100 characters) and are marked that way.
Paid posts need a clear label, and a label after the “more” cut is easy to miss. Put #ad or your local label first. Truncly’s label check flags one that hides.