REST APIPOST

Agendamento em Massa

Agende até 100 publicações de redes sociais de uma vez com configurações específicas por plataforma na API.

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

Agende até 100 publicações de uma vez. Cada publicação pode ter seu próprio conteúdo, mídia e horário agendado, compartilhando as mesmas conexões de plataforma.

Chave API (Bearer token)
Permissão:posts.schedulePapéis e permissões

posts.schedule quando cada item tem um scheduledAt futuro. Se algum item tiver data atual ou passada, ele é publicado na hora e a chave exige também posts.publish. Chaves de Colaborador e Visualizador não conseguem agendar em massa.

Parâmetros do Corpo

ParâmetroTipoDescrição
platformsOBRIGATÓRIOPlatformType[]Plataformas alvo para todas as publicações
timezoneOBRIGATÓRIOstringFuso horário IANA para agendamento
postsOBRIGATÓRIOPostItem[]Array de publicações a agendar (1-100)
twitterConnectionIdsstring[]IDs de conexão da conta do Twitter
linkedinConnectionIdsstring[]IDs de conexão da conta do LinkedIn
instagramConnectionIdsstring[]IDs de conexão da conta do Instagram
tiktokConnectionIdsstring[]IDs de conexão da conta do TikTok
youtubeConnectionIdsstring[]IDs de conexão do canal do YouTube
pinterestConnectionIdsstring[]IDs de conexão da conta do Pinterest
blueskyConnectionIdsstring[]IDs de conexão da conta do Bluesky
mastodonConnectionIdsstring[]IDs de conexão da conta do Mastodon
googleBusinessConnectionIdsstring[]IDs de conexão dos locais do Perfil da Empresa no Google
tumblrConnectionIdsstring[]IDs de conexão dos blogs do Tumblr
telegramConnectionIdsstring[]IDs de conexão dos canais e grupos do Telegram
threadsConnectionIdsstring[]IDs de conexão da conta do Threads
pageIdsstring[]Páginas do Facebook onde publicar. Aceita o id da conta ou o pageId de /social-accounts
pinterestConfigsPinterestConfig[]Configurações do Pinterest no nível do lote aplicadas a todas as publicações. Consulte Configurações de Plataforma para o esquema
tiktokConfigsTikTokConfig[]Configurações do TikTok no nível do lote aplicadas a todas as publicações. Consulte Configurações de Plataforma para o esquema
instagramConfigsInstagramConfig[]Configurações do Instagram no nível do lote aplicadas a todas as publicações. Consulte Configurações de Plataforma para o esquema
facebookConfigsFacebookConfig[]Configurações do Facebook no nível do lote aplicadas a todas as publicações. Consulte Configurações de Plataforma para o esquema
youtubeConfigsYouTubeConfig[]Configurações do YouTube no nível do lote aplicadas a todas as publicações. Consulte Configurações de Plataforma para o esquema
googleBusinessConfigsGoogleBusinessConfig[]Configurações do Perfil da Empresa no Google no nível do lote, aplicadas a todas as publicações. Consulte Configurações de Plataforma para o esquema
tumblrConfigsTumblrConfig[]Configurações do Tumblr no nível do lote aplicadas a todos os posts. Veja Configurações de plataforma para o esquema

Campos do Item de Publicação

Cada publicação no array pode ter seu próprio conteúdo, mídia e horário de agendamento.

Parâmetros do item de publicação

ParâmetroTipoDescrição
contentTypeOBRIGATÓRIOContentTypeTipo de conteúdo (obrigatório)
textstringConteúdo de texto da publicação. No LinkedIn, mencione uma página de empresa com @[Nome da página](urn:li:organization:<id>), escrevendo o nome exatamente como o LinkedIn o mostra. O LinkedIn só permite mencionar páginas de empresa, não pessoas
platformTextsPlatformText[]Substituições de texto por plataforma
mediaUrlsstring[]URLs de arquivos de mídia
mediaAltTextsstring[]Texto alternativo de cada imagem, na mesma ordem que mediaUrls. Máximo de 1000 caracteres cada; use uma string vazia para ignorar uma imagem. Enviado para X, Bluesky, Mastodon, LinkedIn, Facebook, Instagram e Threads. O Pinterest usa o primeiro, cortado a 500 caracteres. TikTok, YouTube, o Perfil da Empresa no Google e vídeos o ignoram.
thumbnailUrlstringURL da miniatura para publicações em vídeo
thumbnailTimestampMsnumberQuadro do vídeo a usar como miniatura, em milissegundos desde o início
platformThumbnailsPlatformThumbnail[]Uma miniatura diferente para uma plataforma de uma publicação de vídeo, como { platform, thumbnailUrl?, thumbnailTimestampMs? }. YOUTUBE, FACEBOOK, LINKEDIN e TELEGRAM aceitam uma imagem, INSTAGRAM e PINTEREST uma imagem ou um quadro, TIKTOK só um quadro. Plataformas sem entrada usam thumbnailUrl e thumbnailTimestampMs
platformAspectRatiosPlatformAspectRatio[]Ajusta todas as imagens de uma publicação IMAGE ou CAROUSEL a um formato em uma plataforma, como { platform, aspectRatio, fit? }. aspectRatio é SQUARE, PORTRAIT, VERTICAL ou LANDSCAPE: INSTAGRAM aceita SQUARE, PORTRAIT ou LANDSCAPE, TIKTOK os quatro. fit é CROP (padrão) ou PAD. Veja Criar publicação
firstCommentsPlatformFirstComment[]Um comentário publicado abaixo da publicação pela mesma conta, como { platform, text }. Uma entrada por plataforma. LINKEDIN aceita até 1250 caracteres, TWITTER 280, THREADS 500, BLUESKY 300, MASTODON 500, YOUTUBE 10000 (não em vídeos privados ou feitos para crianças), FACEBOOK 8000 e INSTAGRAM 2200 (não em stories). Outras plataformas retornam um 400. Uma página do Facebook ou conta do Instagram conectada antes da chegada dos primeiros comentários precisa ser reconectada uma vez; até lá, o comentário falha com firstCommentError
threadRepliesPlatformThreadReplies[]Transforma a publicação num fio, como { platform, texts }: a publicação abre-o e cada texto sai como resposta ao anterior, da mesma conta. Uma entrada por plataforma, até 25 textos. TWITTER aceita 280 caracteres por resposta (mais com X Premium), THREADS 500, BLUESKY 300 e MASTODON 500 (ou o limite da instância). Outras plataformas, uma resposta vazia ou longa demais e uma plataforma que também tem primeiro comentário devolvem um 400
scheduledAtOBRIGATÓRIOstringData de agendamento (obrigatório, ISO 8601)
pinterestConfigsPinterestConfig[]Substituição por publicação. Quando definida, tem prioridade sobre a configuração no nível do lote para esta publicação
tiktokConfigsTikTokConfig[]Substituição por publicação. Quando definida, tem prioridade sobre a configuração no nível do lote para esta publicação
instagramConfigsInstagramConfig[]Substituição por publicação. Quando definida, tem prioridade sobre a configuração no nível do lote para esta publicação
facebookConfigsFacebookConfig[]Substituição por publicação. Quando definida, tem prioridade sobre a configuração no nível do lote para esta publicação
youtubeConfigsYouTubeConfig[]Substituição por publicação. Quando definida, tem prioridade sobre a configuração no nível do lote para esta publicação
googleBusinessConfigsGoogleBusinessConfig[]Substituição por publicação. Quando definida, tem prioridade sobre a configuração no nível do lote para esta publicação
tumblrConfigsTumblrConfig[]Substituição por publicação. Quando definida, tem prioridade sobre a configuração no nível do lote para esta publicação

Substituições de configuração de plataforma por publicação

As configurações de plataforma podem ser definidas em dois níveis: nível do lote (aplicadas a todas as publicações como padrão) e por publicação (substituem o nível do lote para essa publicação específica). Se uma publicação incluir sua própria configuração de plataforma, ela substitui completamente a configuração no nível do lote para essa plataforma.

Limite de taxa

Máximo de 100 publicações por solicitação. Cada publicação é processada de forma independente. Se uma falhar na validação, as outras ainda serão agendadas.

Uma conta por plataforma

Apenas uma conta por plataforma é permitida. Todas as publicações do lote compartilham as mesmas conexões, portanto você não pode incluir múltiplos IDs de conexão para a mesma plataforma. Esta restrição é aplicada para cumprir os Termos de Serviço das plataformas.

Verifique o lote primeiro

Envie o mesmo corpo para Verificar Agendamento em Massa (POST /api/v1/social-posts/bulk/validate) para receber um relatório de cada publicação antes de agendar qualquer coisa.
Agendar publicações em massa
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
    }
  ]
}