REST APIPOST

Resumen claro - Crear publicación con la API

Publica o programa una publicación en múltiples plataformas con una sola llamada a la API, incluyendo contenido y medios.

POSThttps://post.adaptlypost.com/post/api/v1/social-posts

Cree una nueva publicacion en redes sociales. Las publicaciones pueden publicarse inmediatamente, programarse para mas tarde o guardarse como borradores.

Clave API (token Bearer)
Permiso:posts.draftRoles y permisos

posts.draft basta cuando saveAsDraft es true. Un scheduledAt futuro necesita posts.schedule. Sin scheduledAt, o con una hora ya pasada, se publica ahora y hace falta posts.publish. Por tanto, una clave de Colaborador solo puede guardar borradores.

Parametros del cuerpo

ParametroTipoDescripcion
platformsOBLIGATORIOPlatformType[]Plataformas objetivo (ej. TWITTER, LINKEDIN, INSTAGRAM). Cada una necesita también sus IDs de conexión. TELEGRAM no se puede usar desde la API: las publicaciones de Telegram solo se crean en la app
contentTypeOBLIGATORIOContentTypeTEXT, IMAGE, VIDEO, CAROUSEL o DOCUMENT. DOCUMENT es solo para LinkedIn: exactamente un archivo PDF, PPT, PPTX, DOC o DOCX en mediaUrls, mostrado como documento deslizable
textstringContenido de texto de la publicacion. En LinkedIn, menciona una página de empresa con @[Nombre de la página](urn:li:organization:<id>), escribiendo el nombre exactamente como lo muestra LinkedIn. LinkedIn solo permite mencionar páginas de empresa, no personas
platformTextsPlatformText[]Textos personalizados por plataforma
mediaUrlsstring[]URLs de archivos multimedia subidos
mediaAltTextsstring[]Texto alternativo de cada imagen, en el mismo orden que mediaUrls. Máximo 1000 caracteres cada uno; usa una cadena vacía para omitir una imagen. Se envía a X, Bluesky, Mastodon, LinkedIn, Facebook, Instagram y Threads. Pinterest usa el primero, recortado a 500 caracteres. TikTok, YouTube, el Perfil de Empresa de Google y los vídeos lo ignoran.
thumbnailUrlstringURL de miniatura para publicaciones de video
thumbnailTimestampMsnumberFotograma del video que se usa como miniatura, en milisegundos desde el inicio
platformThumbnailsPlatformThumbnail[]Una miniatura distinta para una plataforma de una publicación de video, como { platform, thumbnailUrl?, thumbnailTimestampMs? }. YOUTUBE, FACEBOOK y LINKEDIN aceptan una imagen, INSTAGRAM y PINTEREST una imagen o un fotograma, TIKTOK solo un fotograma. Las plataformas sin entrada usan thumbnailUrl y thumbnailTimestampMs
platformAspectRatiosPlatformAspectRatio[]Ajusta todas las imágenes de una publicación IMAGE o CAROUSEL a un formato en una plataforma, como { platform, aspectRatio, fit? }. Una entrada por plataforma. aspectRatio es SQUARE (1:1), PORTRAIT (4:5), VERTICAL (9:16) o LANDSCAPE (1.91:1): INSTAGRAM acepta SQUARE, PORTRAIT o LANDSCAPE, TIKTOK los cuatro. fit es CROP (por defecto, recorta desde el centro) o PAD (conserva la imagen entera y rellena el resto con una copia desenfocada). Otras plataformas, publicaciones de video, historias de Instagram y una segunda entrada para una plataforma devuelven un 400. Las plataformas sin entrada mantienen las imágenes tal como las subiste
firstCommentsPlatformFirstComment[]Un comentario que se publica bajo la publicación ya publicada desde la misma cuenta, como { platform, text }. Una entrada por plataforma. LINKEDIN acepta hasta 1250 caracteres, TWITTER 280, THREADS 500, BLUESKY 300, MASTODON 500 y YOUTUBE 10000 (no en videos privados ni creados para niños). Otras plataformas devuelven un 400
scheduledAtstringFecha en formato ISO 8601 para programacion. Omita para publicar inmediatamente.
timezoneOBLIGATORIOstringZona horaria IANA (ej. America/New_York)
saveAsDraftbooleanGuardar como borrador en lugar de publicar
recurrenceRecurrenceRepite la publicación según un calendario. Necesita un scheduledAt futuro. Consulta Publicaciones recurrentes más abajo
twitterConnectionIdsstring[]ID de conexion de cuentas de Twitter
twitterKeepLinksbooleanMantiene clicables los enlaces del texto de X. Por defecto se rompe cada enlace del texto de X (example.com pasa a example. com), porque X cobra más de 10 veces más por un post con enlace. Solo las cuentas con lifetime deal de AppSumo pueden activarlo: un enlace mantenido cuesta 20 créditos en vez de 2, también en un primer comentario de X, y sin créditos suficientes el post de X falla. true devuelve un 400 en cualquier otro plan. Se ignora cuando el texto de X no tiene enlaces
linkedinConnectionIdsstring[]ID de conexion de cuentas de LinkedIn
instagramConnectionIdsstring[]ID de conexion de cuentas de Instagram
tiktokConnectionIdsstring[]ID de conexion de cuentas de TikTok
youtubeConnectionIdsstring[]ID de conexion de canales de YouTube
pinterestConnectionIdsstring[]IDs de conexión de la cuenta de Pinterest
blueskyConnectionIdsstring[]IDs de conexión de la cuenta de Bluesky
mastodonConnectionIdsstring[]IDs de conexión de la cuenta de Mastodon
googleBusinessConnectionIdsstring[]IDs de conexión de las ubicaciones del Perfil de Empresa de Google
googleBusinessConfigsGoogleBusinessConfig[]Ajustes de publicación del Perfil de Empresa de Google por ubicación: tipo de publicación (novedad, evento u oferta), botón, fechas del evento y detalles de la oferta. Consulte Configuraciones de plataforma para el esquema
threadsConnectionIdsstring[]IDs de conexión de la cuenta de Threads
pageIdsstring[]Páginas de Facebook en las que publicar. Se acepta el id de la cuenta o el pageId de /social-accounts
pinterestConfigsPinterestConfig[]Configuración de esta plataforma, un objeto por cuenta, cada uno con el connectionId al que se aplica (pageId en Facebook). Consulte Configuraciones de plataforma
tiktokConfigsTikTokConfig[]Configuración de esta plataforma, un objeto por cuenta, cada uno con el connectionId al que se aplica (pageId en Facebook). Consulte Configuraciones de plataforma
instagramConfigsInstagramConfig[]Configuración de esta plataforma, un objeto por cuenta, cada uno con el connectionId al que se aplica (pageId en Facebook). Consulte Configuraciones de plataforma
facebookConfigsFacebookConfig[]Configuración de esta plataforma, un objeto por cuenta, cada uno con el connectionId al que se aplica (pageId en Facebook). Consulte Configuraciones de plataforma
youtubeConfigsYouTubeConfig[]Configuración de esta plataforma, un objeto por cuenta, cada uno con el connectionId al que se aplica (pageId en Facebook). Consulte Configuraciones de plataforma
linkedinConfigsLinkedInConfig[]Configuración de esta plataforma, un objeto por cuenta, cada uno con el connectionId al que se aplica (pageId en Facebook). Consulte Configuraciones de plataforma

Texto especifico por plataforma

Utilice platformTexts para personalizar el contenido por plataforma mientras comparte la misma publicacion.

Cuando una plataforma no tiene una entrada en platformTexts, se utiliza el campo text predeterminado.

Una cuenta por plataforma

Solo se permite una cuenta por plataforma por publicacion. Por ejemplo, no puede incluir dos IDs de conexion de Twitter en la misma solicitud. Esta restriccion se aplica para cumplir con los Terminos de Servicio de las plataformas. Violar esta regla devolvera un error 400.

Publicaciones recurrentes

Añade un objeto recurrence para repetir la publicación. La publicación en scheduledAt es la primera de la serie y fija la hora del día, en la timezone que envíes. Solo existe la siguiente publicación de la serie. AdaptlyPost la crea unas 24 horas antes de que salga.

Objeto recurrence

ParametroTipoDescripcion
frequencyOBLIGATORIORecurrenceFrequencyDAILY, WEEKLY, MONTHLY o YEARLY. YEARLY publica cada año en la misma fecha; una serie que empieza el 29 de febrero publica el 28 de febrero en los demás años
intervalnumberRepetir cada N días, semanas, meses o años (1-30, predeterminado: 1)
weekdaysWeekday[]Solo WEEKLY. Los días en que se publica, de MONDAY a SUNDAY. El día de la semana de scheduledAt siempre se incluye
endsOnstringÚltimo día en que puede salir una publicación, en formato YYYY-MM-DD. Debe ser el día de la primera publicación o posterior. No se puede combinar con maxOccurrences
maxOccurrencesnumberNúmero total de publicaciones de la serie (2-365). No se puede combinar con endsOn. Sin ninguno de los dos, se repite hasta que pauses o elimines la serie
La respuesta añade recurringPostId, y postId es la primera publicación de la serie. Usa recurringPostId con los endpoints de publicaciones recurrentes para pausar, reanudar o eliminar la serie.

Reglas de las publicaciones recurrentes

Una publicación recurrente no puede usar saveAsDraft: true ni incluir una cuenta de TikTok. Cualquiera de los dos devuelve 400. Las fechas que pasan mientras la serie está en pausa se omiten y nunca se publican tarde. X y LinkedIn rechazan un texto igual al de una publicación anterior, así que añade spintax como {Hi|Hello} para que cada publicación sea distinta.
Crear una publicacion social
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/social-posts \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
    "platforms": ["TWITTER", "LINKEDIN"],
    "contentType": "TEXT",
    "text": "Exciting product update!",
    "timezone": "America/New_York",
    "twitterConnectionIds": ["conn_abc123"],
    "linkedinConnectionIds": ["conn_def456"]
  }'
Crear una publicación recurrente
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/social-posts \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
    "platforms": ["LINKEDIN"],
    "contentType": "TEXT",
    "text": "{Hi|Hello} everyone, the weekly product tip is live!",
    "scheduledAt": "2026-10-05T13:00:00Z",
    "timezone": "America/New_York",
    "linkedinConnectionIds": ["conn_def456"],
    "recurrence": {
      "frequency": "WEEKLY",
      "weekdays": ["MONDAY", "THURSDAY"],
      "maxOccurrences": 12
    }
  }'
201
{
  "postId": "post_xyz789",
  "queuedPlatforms": ["TWITTER", "LINKEDIN"],
  "skippedPlatforms": [],
  "isScheduled": false,
  "scheduledAt": null
}