REST APIGET

Feed RSS

Collega un feed RSS o Atom e trasforma ogni nuovo elemento in una bozza, in un post programmato o in un post pubblicato sugli account che scegli, con un modello o con didascalie IA.

Permesso: posts.read. Vedi Ruoli e permessi.

Elencare e leggere i feed e i loro elementi richiede posts.read. Creare, vedere l'anteprima, aggiornare, mettere in pausa, riprendere, controllare ed eliminare richiedono posts.draft, più il permesso che chiede la modalità di pubblicazione del feed: posts.schedule per SCHEDULE, posts.publish per PUBLISH e ai.generate per le didascalie IA. Un feed configurato da un altro membro richiede anche posts.others per aggiornarlo, metterlo in pausa, riprenderlo, controllarlo o eliminarlo.

Un feed viene controllato secondo una pianificazione, e ogni elemento comparso dopo che l'hai aggiunto diventa un post sugli account in targets. Ogni post passa gli stessi controlli di Crea post. Un feed pubblica come il membro che l'ha salvato per ultimo: creare, aggiornare o riprendere un feed rende il membro della chiave il suo proprietario.

MetodoPercorsoDescrizione
GET/api/v1/rss-feedsElenca i feed del workspace, dal più recente
POST/api/v1/rss-feedsCollega un feed
POST/api/v1/rss-feeds/previewLegge un feed senza salvarlo e mostra i suoi 5 elementi più recenti
GET/api/v1/rss-feeds/:idOttiene un feed
PATCH/api/v1/rss-feeds/:idCambia i campi inviati. L'URL non può cambiare
DELETE/api/v1/rss-feeds/:idSmette di controllare il feed. I post già creati restano
GET/api/v1/rss-feeds/:id/itemsElenca gli elementi che il feed ha visto
POST/api/v1/rss-feeds/:id/pauseMette in pausa il feed
POST/api/v1/rss-feeds/:id/resumeCancella il motivo della pausa e controlla il feed entro un minuto
POST/api/v1/rss-feeds/:id/checkAnticipa il prossimo controllo ad adesso; il feed viene letto entro un minuto

POST /api/v1/rss-feeds

Legge il feed e registra ogni elemento che contiene già, così vengono pubblicati solo gli elementi che compaiono dopo. Un workspace può avere fino a 20 feed.

CampoTipoObbligatorioDescrizione
urlstringSìURL pubblico http o https di un feed RSS o Atom
targetsarraySìDa 1 a 20 account, ciascuno { platform, connectionId, pageId }. connectionId è l'id dell'account in Account social, e pageId è obbligatorio per FACEBOOK
postModestringSìDRAFT crea una bozza. SCHEDULE programma il post publishDelayMinutes dopo che l'elemento è stato trovato. PUBLISH lo pubblica subito
contentModestringSìTEMPLATE compila template. AI scrive una didascalia per piattaforma dall'articolo, aggiunge il link e consuma 1 credito IA per piattaforma e per elemento
namestringNoFino a 120 caratteri. Per impostazione predefinita, il titolo del feed
publishDelayMinutesintegerNoDa 5 a 10080 (7 giorni). Obbligatorio quando postMode è SCHEDULE
templatestringNoTesto del post con {title}, {link}, {description}, {author} e {feed}, fino a 2000 caratteri. Predefinito {title}\n\n{link}. Prima la descrizione e poi il titolo vengono accorciati per stare su ogni piattaforma; il link non viene mai tagliato
aiInstructionsstringNoIstruzioni aggiuntive per le didascalie IA, fino a 1000 caratteri
includeImagebooleanNoAllega l'immagine dell'elemento, o l'immagine di anteprima dell'articolo. Predefinito true
twitterKeepLinksbooleanNoMantiene cliccabili i link nei post su X. Solo piani a vita, e ogni post su X con un link costa allora più crediti. Predefinito false
includeKeywordsstring[]NoFino a 50. Pubblica solo gli elementi il cui titolo o riassunto ne contiene una
excludeKeywordsstring[]NoFino a 50. Salta gli elementi il cui titolo o riassunto ne contiene una
maxPostsPerCheckintegerNoDa 1 a 10, predefinito 3. I nuovi elementi vengono pubblicati dal più vecchio; gli altri aspettano il controllo successivo
checkIntervalMinutesintegerNo15, 30, 60, 180, 360, 720 o 1440. Predefinito 60
postLatestItembooleanNoPubblica anche l'elemento più recente al primo controllo. Predefinito false

Le destinazioni possono essere FACEBOOK, INSTAGRAM, THREADS, TWITTER, BLUESKY, LINKEDIN, MASTODON, TELEGRAM e GOOGLE_BUSINESS.

Richiesta di esempio:

{
  "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": "Novità sul blog: {title}\n\n{link}",
  "excludeKeywords": ["sponsored"]
}

Restituisce 201 con il 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": "Novità sul 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"
}

Un URL che non è un feed RSS o Atom, un feed già collegato, una piattaforma di destinazione non supportata, un publishDelayMinutes mancante o il limite di 20 feed restituisce 400. Un feed non raggiungibile restituisce 503. Una chiave senza il permesso richiesto dalla modalità di pubblicazione o dalle didascalie IA restituisce 403.

Campi del feed

CampoDescrizione
userIdIl membro per cui pubblica il feed: chi l'ha salvato per ultimo
statusACTIVE o PAUSED
pauseReasonPerché il feed è in pausa, presente solo mentre è PAUSED. Vedi la tabella sotto
lastErrorL'errore dietro la pausa, quando l'ha causata un problema
targets[].displayNameIl nome dell'account, compilato da AdaptlyPost. Ignorato se lo invii
nextCheckAt, lastCheckedAt, lastPostedAtQuando il feed verrà controllato, quando è stato controllato l'ultima volta e quando ha creato l'ultimo post

Gli altri campi riportano le impostazioni sopra.

Motivo della pausaSignificato
USERQualcuno l'ha messo in pausa dall'API o dall'app
FETCH_FAILURES5 letture di fila non sono riuscite
CONSECUTIVE_FAILURES3 elementi di fila non sono stati pubblicati
ACCESS_LOSTIl proprietario ha perso il permesso che serve alla modalità di pubblicazione
SUBSCRIPTION_INACTIVEIl piano non copre più la pubblicazione
CONNECTION_REMOVEDTutti gli account di destinazione sono stati scollegati

Risolvi la causa, poi riprendi il feed.

POST /api/v1/rss-feeds/preview

Accetta url e un template facoltativo, legge il feed senza salvare nulla e restituisce url, title, siteUrl e i suoi 5 items più recenti, ciascuno con title, link, summary, publishedAt, imageUrl e text, l'elemento con il modello applicato.

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

Elenca gli elementi che il feed ha visto, dal più recente, esclusi quelli già presenti quando il feed è stato aggiunto. limit accetta da 1 a 100, predefinito 20. Restituisce { "items": [...] }, ciascuno con id, title, link, publishedAt, createdAt, status, postId e error.

Stato dell'elementoSignificato
BASELINEEra già nel feed quando è stato aggiunto
PROCESSINGSta diventando un post
POSTEDÈ diventato un post. postId lo collega
FILTEREDEscluso dalle regole sulle parole chiave
SKIPPEDPubblicato più di 14 giorni prima che il feed fosse aggiunto
FAILEDNon è stato possibile creare il post. error spiega perché

Aggiornare, mettere in pausa, riprendere, controllare ed eliminare

PATCH accetta gli stessi campi della creazione, tranne url e postLatestItem, e cambia solo quelli che invii. Pausa, ripresa, controllo ed eliminazione non hanno corpo. Tutti tranne l'eliminazione restituiscono il feed; l'eliminazione restituisce { "deleted": true }. Un id che non esiste o che appartiene a un altro workspace restituisce 404.