REST APIGET

Feeds RSS

Conecte um feed RSS ou Atom e transforme cada item novo em um rascunho, uma publicação agendada ou uma publicação nas contas que você escolher, com um modelo ou com legendas de IA.

Permissão: posts.read. Veja Papéis e permissões.

Listar e ler feeds e seus itens precisa de posts.read. Criar, pré-visualizar, atualizar, pausar, retomar, verificar e excluir precisam de posts.draft, mais a permissão que o modo de publicação do feed exige: posts.schedule para SCHEDULE, posts.publish para PUBLISH e ai.generate para legendas de IA. Um feed que outro membro configurou também precisa de posts.others para atualizar, pausar, retomar, verificar ou excluir.

Um feed é verificado em um cronograma, e cada item que aparece depois que você o adicionou vira uma publicação nas contas de targets. Cada publicação passa pelas mesmas verificações de Criar publicação. Um feed publica como o membro que o salvou por último: criar, atualizar ou retomar um feed torna o membro da chave o dono dele.

MétodoCaminhoDescrição
GET/api/v1/rss-feedsListar os feeds do espaço de trabalho, os mais novos primeiro
POST/api/v1/rss-feedsConectar um feed
POST/api/v1/rss-feeds/previewLer um feed sem salvá-lo e mostrar os 5 itens mais recentes
GET/api/v1/rss-feeds/:idObter um feed
PATCH/api/v1/rss-feeds/:idMudar os campos enviados. A URL não pode mudar
DELETE/api/v1/rss-feeds/:idParar de verificar o feed. As publicações já criadas ficam
GET/api/v1/rss-feeds/:id/itemsListar os itens que o feed já viu
POST/api/v1/rss-feeds/:id/pausePausar o feed
POST/api/v1/rss-feeds/:id/resumeLimpar o motivo da pausa e verificar o feed em até um minuto
POST/api/v1/rss-feeds/:id/checkTrazer a próxima verificação para agora; o feed é lido em até um minuto

POST /api/v1/rss-feeds

Lê o feed e registra cada item que já está nele, para que só os itens que aparecerem depois sejam publicados. Um espaço de trabalho comporta até 20 feeds.

CampoTipoObrigatórioDescrição
urlstringSimURL pública http ou https de um feed RSS ou Atom
targetsarraySimDe 1 a 20 contas, cada uma { platform, connectionId, pageId }. connectionId é o id da conta em Contas sociais, e pageId é obrigatório para FACEBOOK
postModestringSimDRAFT cria um rascunho. SCHEDULE agenda a publicação publishDelayMinutes depois que o item é encontrado. PUBLISH publica na hora
contentModestringSimTEMPLATE preenche template. AI escreve uma legenda por plataforma a partir do artigo, adiciona o link e gasta 1 crédito de IA por plataforma e por item
namestringNãoAté 120 caracteres. Por padrão, o título do feed
publishDelayMinutesintegerNãoDe 5 a 10080 (7 dias). Obrigatório quando postMode é SCHEDULE
templatestringNãoTexto da publicação com {title}, {link}, {description}, {author} e {feed}, até 2000 caracteres. Por padrão {title}\n\n{link}. Primeiro a descrição e depois o título são encurtados para caber em cada plataforma; o link nunca é cortado
aiInstructionsstringNãoInstruções extras para as legendas de IA, até 1000 caracteres
includeImagebooleanNãoAnexar a imagem do item, ou a imagem de prévia do artigo. Por padrão true
twitterKeepLinksbooleanNãoManter os links clicáveis nas publicações do X. Só planos vitalícios, e cada publicação do X com link passa a custar mais créditos. Por padrão false
includeKeywordsstring[]NãoAté 50. Publicar só os itens cujo título ou resumo contenha alguma delas
excludeKeywordsstring[]NãoAté 50. Pular os itens cujo título ou resumo contenha alguma delas
maxPostsPerCheckintegerNãoDe 1 a 10, 3 por padrão. Os itens novos são publicados do mais antigo para o mais novo; o resto espera a próxima verificação
checkIntervalMinutesintegerNão15, 30, 60, 180, 360, 720 ou 1440. Por padrão 60
postLatestItembooleanNãoPublicar também o item mais recente na primeira verificação. Por padrão false

Os destinos podem ser FACEBOOK, INSTAGRAM, THREADS, TWITTER, BLUESKY, LINKEDIN, MASTODON, TELEGRAM e GOOGLE_BUSINESS.

Requisição de exemplo:

{
  "url": "https://blog.example.com/feed.xml",
  "targets": [
    { "platform": "LINKEDIN", "connectionId": "conn_li_001" },
    { "platform": "FACEBOOK", "connectionId": "conn_fb_001", "pageId": "123456789012345" }
  ],
  "postMode": "SCHEDULE",
  "publishDelayMinutes": 30,
  "contentMode": "TEMPLATE",
  "template": "Novo no blog: {title}\n\n{link}",
  "excludeKeywords": ["sponsored"]
}

Retorna 201 com o feed:

{
  "id": "rss_01j9x",
  "userId": "user_123",
  "accountGroupId": "ag_01j9x",
  "name": "Example Blog",
  "url": "https://blog.example.com/feed.xml",
  "siteUrl": "https://blog.example.com",
  "status": "ACTIVE",
  "postMode": "SCHEDULE",
  "publishDelayMinutes": 30,
  "contentMode": "TEMPLATE",
  "template": "Novo no blog: {title}\n\n{link}",
  "includeImage": true,
  "twitterKeepLinks": false,
  "includeKeywords": [],
  "excludeKeywords": ["sponsored"],
  "maxPostsPerCheck": 3,
  "checkIntervalMinutes": 60,
  "targets": [
    { "platform": "LINKEDIN", "connectionId": "conn_li_001", "displayName": "Example Inc." },
    { "platform": "FACEBOOK", "connectionId": "conn_fb_001", "pageId": "123456789012345", "displayName": "Example" }
  ],
  "nextCheckAt": "2026-11-08T15:00:00.000Z",
  "createdAt": "2026-11-08T14:00:00.000Z",
  "updatedAt": "2026-11-08T14:00:00.000Z"
}

Uma URL que não é um feed RSS ou Atom, um feed já conectado, uma plataforma de destino não suportada, a falta de publishDelayMinutes ou o limite de 20 feeds retorna 400. Um feed que não pode ser alcançado retorna 503. Uma chave sem a permissão que o modo de publicação ou as legendas de IA exigem retorna 403.

Campos do feed

CampoDescrição
userIdO membro como quem o feed publica: quem o salvou por último
statusACTIVE ou PAUSED
pauseReasonPor que o feed foi pausado, preenchido só enquanto ele está PAUSED. Veja a tabela abaixo
lastErrorO erro por trás da pausa, quando uma falha a causou
targets[].displayNameO nome da conta, preenchido pela AdaptlyPost. Ignorado se você o enviar
nextCheckAt, lastCheckedAt, lastPostedAtQuando o feed será verificado, quando foi verificado pela última vez e quando criou a última publicação

Os outros campos trazem as configurações acima.

Motivo da pausaSignificado
USERAlguém pausou pela API ou pelo app
FETCH_FAILURES5 leituras seguidas falharam
CONSECUTIVE_FAILURES3 itens seguidos não puderam ser publicados
ACCESS_LOSTO dono perdeu a permissão que o modo de publicação exige
SUBSCRIPTION_INACTIVEO plano não cobre mais a publicação
CONNECTION_REMOVEDTodas as contas de destino foram desconectadas

Corrija a causa e depois retome o feed.

POST /api/v1/rss-feeds/preview

Recebe url e um template opcional, lê o feed sem salvar nada e retorna url, title, siteUrl e os 5 items mais recentes, cada um com title, link, summary, publishedAt, imageUrl e text, o item com o modelo aplicado.

GET /api/v1/rss-feeds/:id/items

Lista os itens que o feed já viu, os mais novos primeiro, sem os que já estavam no feed quando ele foi adicionado. limit aceita de 1 a 100 e o padrão é 20. Retorna { "items": [...] }, cada um com id, title, link, publishedAt, createdAt, status, postId e error.

Status do itemSignificado
BASELINEJá estava no feed quando ele foi adicionado
PROCESSINGEstá virando uma publicação
POSTEDVirou uma publicação. postId aponta para ela
FILTEREDFicou de fora pelas regras de palavras-chave
SKIPPEDPublicado mais de 14 dias antes de o feed ser adicionado
FAILEDNão foi possível criar a publicação. error diz o motivo

Atualizar, pausar, retomar, verificar e excluir

PATCH aceita os mesmos campos da criação, exceto url e postLatestItem, e muda só os que você envia. Pausar, retomar, verificar e excluir não têm corpo. Todos, menos excluir, retornam o feed; excluir retorna { "deleted": true }. Um id que não existe ou que pertence a outro espaço de trabalho retorna 404.