REST APIPOST

Solução prática - Como criar publicação via API

Publique ou agende uma publicação em várias plataformas com uma única chamada de API, incluindo conteúdo e mídia.

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

Crie uma nova publicacao nas redes sociais. As publicacoes podem ser publicadas imediatamente, agendadas para mais tarde ou guardadas como rascunho.

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

posts.draft basta quando saveAsDraft é true. Um scheduledAt futuro exige posts.schedule. Sem scheduledAt, ou com um horário já passado, a publicação sai agora e exige posts.publish. Uma chave de Colaborador, portanto, só consegue salvar rascunhos.

Parametros do Corpo

ParametroTipoDescricao
platformsOBRIGATORIOPlatformType[]Plataformas alvo (ex.: TWITTER, LINKEDIN, INSTAGRAM). Cada uma também precisa dos seus IDs de conexão. TELEGRAM não pode ser usado pela API: publicações no Telegram só podem ser criadas no app
contentTypeOBRIGATORIOContentTypeTEXT, IMAGE, VIDEO, CAROUSEL ou DOCUMENT. DOCUMENT é só para o LinkedIn: exatamente um ficheiro PDF, PPT, PPTX, DOC ou DOCX em mediaUrls, apresentado como documento deslizável
textstringConteudo de texto da publicacao. 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[]Textos personalizados por plataforma
mediaUrlsstring[]URLs dos ficheiros de media enviados
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 ignoram-no.
thumbnailUrlstringURL da miniatura para publicacoes de video
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 e LINKEDIN 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? }. Uma entrada por plataforma. aspectRatio é SQUARE (1:1), PORTRAIT (4:5), VERTICAL (9:16) ou LANDSCAPE (1.91:1): INSTAGRAM aceita SQUARE, PORTRAIT ou LANDSCAPE, TIKTOK os quatro. fit é CROP (padrão, corta a partir do centro) ou PAD (mantém a imagem inteira e preenche o resto com uma cópia desfocada). Outras plataformas, publicações de vídeo, stories do Instagram e uma segunda entrada para a mesma plataforma retornam um 400. Plataformas sem entrada mantêm as imagens como você enviou
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 e YOUTUBE 10000 (não em vídeos privados ou feitos para crianças). Outras plataformas retornam um 400
scheduledAtstringData em ISO 8601 para agendamento. Omita para publicar imediatamente.
timezoneOBRIGATORIOstringFuso horario IANA (ex.: America/New_York)
saveAsDraftbooleanGuardar como rascunho em vez de publicar
recurrenceRecurrenceRepete a publicação em uma agenda. Exige um scheduledAt futuro. Veja Publicações recorrentes abaixo
twitterConnectionIdsstring[]IDs de ligacao da conta Twitter
twitterKeepLinksbooleanMantém clicáveis os links do texto do X. Por padrão, cada link no texto do X é quebrado (example.com vira example. com), porque o X cobra mais de 10 vezes mais por um post com link. Só contas com lifetime deal da AppSumo podem ativar isso: um link mantido custa 20 créditos em vez de 2, também num primeiro comentário no X, e sem créditos suficientes o post no X falha. true retorna 400 em qualquer outro plano. Ignorado quando o texto do X não tem link
linkedinConnectionIdsstring[]IDs de ligacao da conta LinkedIn
instagramConnectionIdsstring[]IDs de ligacao da conta Instagram
tiktokConnectionIdsstring[]IDs de ligacao da conta TikTok
youtubeConnectionIdsstring[]IDs de ligacao do canal 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
googleBusinessConfigsGoogleBusinessConfig[]Configurações de post do Perfil da Empresa no Google por local: tipo de post (novidade, evento ou oferta), botão, datas do evento e detalhes da oferta. Consulte Configuracoes de Plataforma para o esquema
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 desta plataforma, um objeto por conta, cada um com o connectionId a que se aplica (pageId no Facebook). Consulte Configuracoes de Plataforma
tiktokConfigsTikTokConfig[]Configurações desta plataforma, um objeto por conta, cada um com o connectionId a que se aplica (pageId no Facebook). Consulte Configuracoes de Plataforma
instagramConfigsInstagramConfig[]Configurações desta plataforma, um objeto por conta, cada um com o connectionId a que se aplica (pageId no Facebook). Consulte Configuracoes de Plataforma
facebookConfigsFacebookConfig[]Configurações desta plataforma, um objeto por conta, cada um com o connectionId a que se aplica (pageId no Facebook). Consulte Configuracoes de Plataforma
youtubeConfigsYouTubeConfig[]Configurações desta plataforma, um objeto por conta, cada um com o connectionId a que se aplica (pageId no Facebook). Consulte Configuracoes de Plataforma
linkedinConfigsLinkedInConfig[]Configurações desta plataforma, um objeto por conta, cada um com o connectionId a que se aplica (pageId no Facebook). Consulte Configuracoes de Plataforma

Texto Especifico por Plataforma

Utilize platformTexts para personalizar o conteudo por plataforma enquanto partilha a mesma publicacao.

Quando uma plataforma nao tem entrada em platformTexts, o campo text predefinido e utilizado.

Uma conta por plataforma

Apenas uma conta por plataforma e permitida por publicacao. Por exemplo, nao pode incluir dois IDs de conexao do Twitter na mesma solicitacao. Esta restricao e aplicada para cumprir os Termos de Servico das plataformas. Violar esta regra retornara um erro 400.

Publicações recorrentes

Adicione um objeto recurrence para repetir a publicação. A publicação em scheduledAt é a primeira da série e define o horário, no timezone que você enviar. Só a próxima publicação da série existe. O AdaptlyPost a cria cerca de 24 horas antes de ela sair.

Objeto recurrence

ParametroTipoDescricao
frequencyOBRIGATORIORecurrenceFrequencyDAILY, WEEKLY, MONTHLY ou YEARLY. YEARLY publica todo ano na mesma data; uma série iniciada em 29 de fevereiro publica em 28 de fevereiro nos outros anos
intervalnumberRepetir a cada N dias, semanas, meses ou anos (1-30, padrão: 1)
weekdaysWeekday[]Só WEEKLY. Os dias de publicação, de MONDAY a SUNDAY. O dia da semana de scheduledAt sempre é incluído
endsOnstringÚltimo dia em que uma publicação pode sair, no formato YYYY-MM-DD. Deve ser no dia da primeira publicação ou depois. Não pode ser combinado com maxOccurrences
maxOccurrencesnumberNúmero total de publicações da série (2-365). Não pode ser combinado com endsOn. Sem nenhum dos dois, a série se repete até você pausá-la ou excluí-la
A resposta inclui recurringPostId, e postId é a primeira publicação da série. Use recurringPostId com os endpoints de publicações recorrentes para pausar, retomar ou excluir a série.

Regras das publicações recorrentes

Uma publicação recorrente não pode usar saveAsDraft: true nem incluir uma conta do TikTok. Qualquer um dos dois retorna 400. Datas perdidas enquanto a série está pausada são puladas, nunca publicadas com atraso. X e LinkedIn rejeitam texto igual ao de uma publicação anterior, então adicione spintax como {Hi|Hello} para que cada publicação seja diferente.
Criar uma publicacao 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"]
  }'
Criar uma publicação recorrente
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
}