Después de este artículo tu sitio web recogerá los materiales terminados del proyecto (texto, imágenes, video) y los publicará por sí mismo. El dueño necesita unos minutos para generar una clave; el desarrollador, escribir tres solicitudes. El sitio no genera nada, solo recibe lo que ya está listo.
Cómo funciona
Telematic no obtiene acceso a tu sitio web. El sitio pide materiales nuevos de vez en cuando y los recibe en formato JSON. Una vez publicado un material, lo informa, y en el proyecto ese material pasa a estar publicado.
Puedes conectar varios sitios web a un mismo proyecto. Cada uno tiene su propia clave y su propio registro de lo que ya publicó; todos los sitios ven los mismos materiales.
Crea la conexión y copia la clave
- Abre la sección "Integraciones" y haz clic en "Añadir feed de sitio".
- En la ventana "Conectar un sitio externo" completa "Nombre del sitio".
- En el bloque "Qué estados exponer en el feed" deja los estados que necesitas: "Aceptado", "Programado", "Publicado". Los borradores, los rechazados y los archivados nunca se entregan al sitio.
- Elige "Ritmo de entrega"; más sobre esto a continuación.
- Haz clic en "Generar clave".

Aparece el bloque "Tu clave secreta". La clave empieza con tlmf_.
Importante. La clave se muestra una sola vez: el servicio solo guarda su huella. Cópiala de inmediato y pásasela a tu desarrollador de forma segura. Si la pierdes, genera una nueva.
Más abajo, en la misma ventana, está "Guía de integración": comandos listos con tu clave y dirección.

Recoge los materiales: las solicitudes para el desarrollador
La dirección de la API es https://<la dirección de la guía>/api/feed/v1. La parte /api es obligatoria: sin ella, la solicitud llega al sitio normal. Cada solicitud lleva la cabecera Authorization: Bearer <clave>.
| Solicitud | Qué hace |
|---|---|
GET /me | comprueba la clave y devuelve el proyecto y los ajustes del feed |
GET /content?since=&limit= | los materiales listos que este sitio aún no confirmó; primero los más antiguos |
GET /content/{id} | un material, incluido uno ya confirmado, para actualizar tu copia |
POST /content/{id}/ack | confirma la publicación en el sitio |
POST /content/{id}/stats | envía visualizaciones y reacciones |
GET /openapi.json | una descripción de la API legible por máquina |
BASE="https://<la dirección de la guía>/api/feed/v1"
KEY="tlmf_..."
curl -H "Authorization: Bearer $KEY" "$BASE/content?limit=20"
La respuesta contiene items, nextCursor y un bloque pacing. limit va de 1 a 100 y por defecto es 20. Guarda nextCursor y pásalo como since en tu siguiente solicitud.
Confirma la publicación y envía las estadísticas
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"externalId":"123","url":"https://mi-sitio.com/p/123"}' \
"$BASE/content/<ID>/ack"
Todos los campos son opcionales: externalId, url, publishedAt. Después de la confirmación, el material desaparece del feed de ese sitio, y en el proyecto obtiene el estado "Publicado", o se queda en "Publicado parcialmente" mientras otras plataformas todavía lo esperan. Llamarlo de nuevo es seguro.
Para que las cifras de tu sitio lleguen a Estadísticas, envía views, reactions, comments y shares a /content/<ID>/stats. Antes de que un material se confirme, esta solicitud devuelve 404. Nosotros no recopilamos las cifras de tu sitio por nuestra cuenta.
El ritmo de entrega: un material por intervalo
El sitio pregunta por su cuenta, así que la velocidad la fijas tú. En un intervalo, el feed entrega como máximo un material, sea cual sea el limit de la solicitud, y no entrega de golpe lo acumulado tras una inactividad del sitio. El intervalo se cuenta desde la última confirmación.
- "Seguir la programación del proyecto" toma el intervalo, la ventana horaria y el límite diario de la programación de publicaciones del proyecto. El límite se cuenta por separado para el sitio. Si no hay programación, no hay límites.
- "Ritmo personalizado": tu propio intervalo, de 5 minutos a 30 días, una ventana horaria y un límite de 1 a 1000 al día.
- "Sin límite": el sitio recibe todo lo que pida, hasta 100 materiales por vez.
Cuando un material aún no "toca", la respuesta llega vacía y el bloque pacing explica el motivo:
{ "items": [],
"pacing": { "reason": "interval", "intervalSeconds": 3600,
"nextAvailableAt": "2026-09-19T13:00:00.000Z" } }
reason toma los valores interval (el intervalo no ha pasado), window (ahora mismo estás fuera de la ventana horaria), daily-cap (el límite de hoy se agotó), ready y unlimited. El bloque también trae los campos enabled, source, timeFrom, timeTo, maxPerDay y allowance. La ventana se cuenta en hora del servidor: guíate por nextAvailableAt.
Los campos de un material
id,title,excerpt: el identificador, el titular, una descripción breve.bodyMarkdown: el texto principal con encabezados, listas e imágenes. Conviértelo a HTML y dale estilo con los estilos de tu sitio.bodyes el mismo texto sin el formato, se mantiene para conexiones antiguas.topics: normalmente 3 a 7 etiquetas en el idioma del material.sourceUrl,createdAt,updatedAt.media[]: los archivos:type(IMAGE,VIDEO,AUDIO,OTHER),url,width,height,duration,thumbnail. Los enlaces son absolutos.
La primera imagen en media es la portada, y no se inserta en el texto. Toma también el video y el audio de media: como máximo un video por orientación. Los videos que esperan tu aprobación no llegan al feed.
En la página del material, la tarjeta del sitio muestra el estado ("Esperando a que el sitio lo extraiga", "Confirmado por el sitio" o "No está en el feed") y la hora de la última vez que el sitio vino a por materiales. El botón "Vista previa" muestra el texto exactamente como lo recibirá el sitio.

Pausa y una nueva clave
- Pausa. En la sección "Integraciones" haz clic en el botón de pausa en la tarjeta del sitio. Aparece el mensaje "Integración pausada" y el sitio empieza a recibir un error 401. El mismo botón vuelve a activar la entrega.
- Una nueva clave. Haz clic en la tarjeta del sitio y elige "Rotar clave" en la ventana "Feed de sitio". La nueva clave también se muestra una sola vez, y la anterior deja de funcionar de inmediato: actualízala en el sitio.
En la misma ventana cambias el nombre, los estados y el ritmo; no olvides "Guardar".

Si el sitio no recibe nada
- Una respuesta 401. La clave no se copió completa, se reemitió o la conexión está en pausa. Comprueba la cabecera
Authorization: Bearer …con una solicitudGET /me. - Llega una página web en vez de JSON. A la dirección le falta
/api. itemsvacío. Primero mirapacing.reasonynextAvailableAt. Si dicenreadyounlimited, el proyecto no tiene materiales en los estados que elegiste: primero hay que aceptar un borrador, consulta Trabajar con el contenido.- El mismo material llega una y otra vez. El sitio no envió
ack.
Qué sigue
- Proyectos y plataformas — las demás plataformas del proyecto.
- Publicaciones y calendario — la programación de la que el feed toma su ritmo.
- Solución de problemas frecuentes — si necesitas ayuda de soporte.