REST APIPOST

Programacion masiva

Programa hasta 100 publicaciones de redes sociales a la vez con configuraciones específicas por plataforma en la API.

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

Programe hasta 100 publicaciones a la vez. Cada publicación puede tener su propio contenido, medios y hora programada mientras comparte las mismas conexiones de plataforma.

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

posts.schedule cuando cada elemento tiene un scheduledAt futuro. Si algún elemento tiene fecha actual o pasada se publica al momento, y la clave necesita además posts.publish. Las claves de Colaborador y Visor no pueden programar en masa.

Parámetros del cuerpo

ParámetroTipoDescripción
platformsOBLIGATORIOPlatformType[]Plataformas objetivo para todas las publicaciones
timezoneOBLIGATORIOstringZona horaria IANA para programación
postsOBLIGATORIOPostItem[]Array de publicaciones a programar (1-100)
twitterConnectionIdsstring[]IDs de conexión de la cuenta de Twitter
linkedinConnectionIdsstring[]IDs de conexión de la cuenta de LinkedIn
instagramConnectionIdsstring[]IDs de conexión de la cuenta de Instagram
tiktokConnectionIdsstring[]IDs de conexión de la cuenta de TikTok
youtubeConnectionIdsstring[]IDs de conexión del canal 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
tumblrConnectionIdsstring[]IDs de conexión de blogs de Tumblr
telegramConnectionIdsstring[]IDs de conexión de canales y grupos de Telegram
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[]Configuraciones de Pinterest a nivel de lote aplicadas a todas las publicaciones. Consulte Configuraciones de plataforma para el esquema
tiktokConfigsTikTokConfig[]Configuraciones de TikTok a nivel de lote aplicadas a todas las publicaciones. Consulte Configuraciones de plataforma para el esquema
instagramConfigsInstagramConfig[]Configuraciones de Instagram a nivel de lote aplicadas a todas las publicaciones. Consulte Configuraciones de plataforma para el esquema
facebookConfigsFacebookConfig[]Configuraciones de Facebook a nivel de lote aplicadas a todas las publicaciones. Consulte Configuraciones de plataforma para el esquema
youtubeConfigsYouTubeConfig[]Configuraciones de YouTube a nivel de lote aplicadas a todas las publicaciones. Consulte Configuraciones de plataforma para el esquema
googleBusinessConfigsGoogleBusinessConfig[]Configuraciones del Perfil de Empresa de Google a nivel de lote aplicadas a todas las publicaciones. Consulte Configuraciones de plataforma para el esquema
tumblrConfigsTumblrConfig[]Ajustes de Tumblr a nivel de lote aplicados a todas las publicaciones. Consulta Configuraciones de plataforma para el esquema

Campos del elemento de publicación

Cada publicación del arreglo puede tener su propio contenido, medios y hora de programación.

Parámetros del elemento de publicación

ParámetroTipoDescripción
contentTypeOBLIGATORIOContentTypeTipo de contenido (obligatorio)
textstringContenido de texto de la publicación. 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[]Sobrescrituras de texto por plataforma
mediaUrlsstring[]URLs de archivos multimedia
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, LINKEDIN y TELEGRAM 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? }. aspectRatio es SQUARE, PORTRAIT, VERTICAL o LANDSCAPE: INSTAGRAM acepta SQUARE, PORTRAIT o LANDSCAPE, TIKTOK los cuatro. fit es CROP (por defecto) o PAD. Mira Crear publicación
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, YOUTUBE 10000 (no en videos privados ni creados para niños), FACEBOOK 8000 e INSTAGRAM 2200 (no en historias). Otras plataformas devuelven un 400. Una página de Facebook o una cuenta de Instagram conectada antes de que llegaran los primeros comentarios necesita reconectarse una vez; hasta entonces su comentario falla con firstCommentError
threadRepliesPlatformThreadReplies[]Convierte la publicación en un hilo, como { platform, texts }: la publicación lo abre y cada texto sale como respuesta al anterior, desde la misma cuenta. Una entrada por plataforma, hasta 25 textos. TWITTER admite 280 caracteres por respuesta (más con X Premium), THREADS 500, BLUESKY 300 y MASTODON 500 (o el límite de la instancia). Otras plataformas, una respuesta vacía o demasiado larga y una plataforma que también tiene primer comentario devuelven un 400
scheduledAtOBLIGATORIOstringFecha de programación (obligatorio, ISO 8601)
pinterestConfigsPinterestConfig[]Anulación por publicación. Cuando se establece, tiene prioridad sobre la configuración a nivel de lote para esta publicación
tiktokConfigsTikTokConfig[]Anulación por publicación. Cuando se establece, tiene prioridad sobre la configuración a nivel de lote para esta publicación
instagramConfigsInstagramConfig[]Anulación por publicación. Cuando se establece, tiene prioridad sobre la configuración a nivel de lote para esta publicación
facebookConfigsFacebookConfig[]Anulación por publicación. Cuando se establece, tiene prioridad sobre la configuración a nivel de lote para esta publicación
youtubeConfigsYouTubeConfig[]Anulación por publicación. Cuando se establece, tiene prioridad sobre la configuración a nivel de lote para esta publicación
googleBusinessConfigsGoogleBusinessConfig[]Anulación por publicación. Cuando se establece, tiene prioridad sobre la configuración a nivel de lote para esta publicación
tumblrConfigsTumblrConfig[]Anulación por publicación. Cuando se establece, tiene prioridad sobre la configuración a nivel de lote para esta publicación

Anulaciones de configuración de plataforma por publicación

Las configuraciones de plataforma pueden establecerse en dos niveles: nivel de lote (aplicadas a todas las publicaciones como valor predeterminado) y por publicación (anulan el nivel de lote para esa publicación específica). Si una publicación incluye su propia configuración de plataforma, reemplaza completamente la configuración de nivel de lote para esa plataforma.

Límite de tasa

Máximo 100 publicaciones por solicitud. Cada publicación se procesa de forma independiente. Si una falla la validación, las demás se seguirán programando.

Una cuenta por plataforma

Solo se permite una cuenta por plataforma. Todas las publicaciones del lote comparten las mismas conexiones, por lo que no puede incluir múltiples IDs de conexión para la misma plataforma. Esta restricción se aplica para cumplir con los Términos de Servicio de las plataformas.

Comprueba el lote primero

Envía el mismo cuerpo a Comprobar programación masiva (POST /api/v1/social-posts/bulk/validate) para recibir un informe de cada publicación antes de programar nada.
Programar publicaciones en masa
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/social-posts/bulk \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
    "platforms": ["YOUTUBE", "PINTEREST"],
    "timezone": "America/New_York",
    "youtubeConnectionIds": ["conn_yt123"],
    "pinterestConnectionIds": ["conn_pin456"],
    "youtubeConfigs": [{
      "connectionId": "conn_yt123",
      "postType": "SHORTS",
      "privacyStatus": "public"
    }],
    "pinterestConfigs": [{
      "connectionId": "conn_pin456",
      "boardId": "board_abc",
      "title": "Default pin title"
    }],
    "posts": [
      {
        "contentType": "VIDEO",
        "text": "First video!",
        "mediaUrls": ["https://cdn.adaptlypost.com/uploads/video1.mp4"],
        "scheduledAt": "2026-03-15T10:00:00Z"
      },
      {
        "contentType": "VIDEO",
        "text": "Second video with custom config",
        "mediaUrls": ["https://cdn.adaptlypost.com/uploads/video2.mp4"],
        "scheduledAt": "2026-03-15T14:00:00Z",
        "youtubeConfigs": [{
          "connectionId": "conn_yt123",
          "postType": "VIDEO",
          "videoTitle": "Full tutorial",
          "privacyStatus": "unlisted"
        }]
      }
    ]
  }'
201
{
  "totalScheduled": 2,
  "totalFailed": 0,
  "results": [
    {
      "postId": "post_abc001",
      "success": true,
      "isScheduled": true,
      "scheduledAt": "2026-03-15T10:00:00Z",
      "errorMessage": null
    },
    {
      "postId": "post_abc002",
      "success": true,
      "isScheduled": true,
      "scheduledAt": "2026-03-15T14:00:00Z",
      "errorMessage": null
    }
  ]
}