Comprobar límite de caracteres de una publicación social
Este verificador de límites mide una publicación completa según el máximo estándar de X, Instagram, Facebook, LinkedIn, Threads o Bluesky.
Ejecutar — gratis
Pegue el texto definitivo, elija el destino y obtendrá el recuento, el límite aplicable, el margen disponible y un resultado claro que indica si cabe. Se incluyen espacios, signos, saltos de línea y emojis, por lo que resulta útil como control editorial final antes de enviar una publicación a aprobación o programarla.
Compruebe el texto definitivo, no un borrador anterior
Los límites importan en el momento de publicar, por lo que debe enviar el texto completo que llegará a la red social. Incluya el encabezado, el cuerpo, las etiquetas, las menciones, los enlaces, los signos, los espacios intencionados y los saltos de línea. El verificador mide puntos de código Unicode; así, un emoji habitual se considera un carácter y no dos unidades internas de JavaScript. Aun así, cada espacio visible y cada salto de línea se suma al total. Tras elegir la plataforma, el resultado muestra su nombre normalizado, el recuento medido, el límite aplicable, los caracteres restantes y si el texto cabe. Un valor restante igual a cero indica que la publicación agota el margen, pero es válida. Un valor negativo indica que supera el máximo; su valor absoluto revela cuántos caracteres debe eliminar. Este dato es más útil que un contador genérico, pues un mismo texto puede caber en una red y excederse en otra. Repita la comprobación después de cualquier cambio final, sobre todo si añade etiquetas de campaña, menciones, avisos legales o una llamada a la acción.
Interprete el recuento siempre con el mismo criterio
La herramienta aplica una regla estable a todos los destinos admitidos. Cuenta las letras, los números, los símbolos, los signos de puntuación, los espacios y los saltos de línea que forman parte de la publicación. También cuenta Unicode por puntos de código, con lo que evita la sorpresa frecuente de que muchos emojis parezcan ocupar dos posiciones en un cálculo básico de longitud de JavaScript. El campo character_limit contiene el máximo estándar guardado para la plataforma elegida, mientras que character_count describe exclusivamente el texto recibido. La resta produce remaining_characters: un valor positivo representa espacio disponible, cero corresponde a un ajuste exacto y un valor negativo señala el exceso. El indicador within_limit permite que una automatización tome una decisión booleana sin cálculos adicionales. Los nombres de plataforma se normalizan en minúsculas, pero un nombre no admitido genera un error de entrada en vez de seleccionar una alternativa de forma silenciosa. Así se evita que un sistema de programación apruebe contenido usando la regla equivocada. Las políticas pueden cambiar; conviene volver a comprobar las campañas importantes cuando se actualicen los requisitos del destino.
Integre el resultado en procesos editoriales y de publicación
La comprobación manual sirve antes de publicar una pieza concreta, mientras que la API está pensada para operaciones de contenido repetibles. Un editor puede revisar el borrador antes de solicitar la aprobación. La persona responsable de una campaña puede probar versiones adaptadas del mismo anuncio para varios destinos y detectar dónde hace falta abreviar. Una integración de publicación puede rechazar un elemento excesivo antes de que llegue al programador y devolver el margen negativo para explicar el cambio necesario. Como el algoritmo es determinista y no utiliza red, el mismo texto y la misma plataforma siempre generan idéntico resultado. La salida puede emplearse en reglas de validación, pruebas, hojas de cálculo, conexiones con gestores de contenido y controles previos de un flujo social. Cada solicitud mediante la API cuesta $0.002 y la unidad es una publicación comprobada. Dedique cada solicitud a un texto y un destino exactos; revisar las variantes por separado mantiene un historial claro. Si el contenido es demasiado largo, elimine primero las repeticiones de poco valor y vuelva a medir la versión definitiva completa para incluir los cambios de signos, etiquetas y espacios.
Qué puede hacer con ella
Validar una publicación programada
Detenga un borrador demasiado largo antes de enviarlo a la cola y muestre a la persona editora cuántos caracteres debe eliminar.
Adaptar una campaña a varias redes
Revise cada versión por separado para que los destinos más breves reciban textos concisos sin recortar innecesariamente los demás.
Añadir una regla de validación al CMS
Use el resultado booleano y el margen restante para ofrecer información inmediata y determinista en el proceso editorial.
Preguntas frecuentes
¿Qué plataformas se reconocen?
Los nombres admitidos son x, instagram, facebook, linkedin, threads y bluesky. Cualquier otro nombre produce un error de entrada no válida.
¿Se cuentan los espacios y los saltos de línea?
Sí. Los espacios, las tabulaciones, los signos y los saltos de línea forman parte del texto enviado y se incluyen en el recuento.
¿Cómo se cuentan los emojis?
El algoritmo cuenta puntos de código Unicode, de modo que un emoji habitual vale un carácter y no dos unidades UTF-16. Un emoji combinado puede contener varios puntos y contar más de uno.
¿Qué significa un margen restante negativo?
Significa que la publicación supera el límite elegido. Por ejemplo, un valor de menos doce exige eliminar doce caracteres.
¿Cuánto cuesta una comprobación mediante la API?
Cada solicitud API cuesta $0.002 y comprueba una publicación para una única plataforma seleccionada.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/seo/social-post-length-limit-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"A concise product update with one clear takeaway.","platform":"x"}'const res = await fetch("https://api.kit.forhosting.com/seo/social-post-length-limit-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "A concise product update with one clear takeaway.",
"platform": "x"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/social-post-length-limit-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "A concise product update with one clear takeaway.",
"platform": "x"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/social-post-length-limit-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"A concise product update with one clear takeaway.","platform":"x"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"A concise product update with one clear takeaway.","platform":"x"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/social-post-length-limit-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "A concise product update with one clear takeaway.",
"platform": "x"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.social_post_length_limit_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chars | 100000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |