REST APIGET

Flux RSS

Connectez un flux RSS ou Atom et transformez chaque nouvel élément en brouillon, en publication planifiée ou en publication en ligne sur les comptes choisis, avec un modèle ou des légendes IA.

Permission : posts.read. Voir Rôles et permissions.

Lister et lire les flux et leurs éléments demande posts.read. Créer, prévisualiser, modifier, mettre en pause, reprendre, vérifier et supprimer demandent posts.draft, plus la permission qu'exige le mode de publication du flux : posts.schedule pour SCHEDULE, posts.publish pour PUBLISH et ai.generate pour les légendes IA. Un flux configuré par un autre membre demande aussi posts.others pour le modifier, le mettre en pause, le reprendre, le vérifier ou le supprimer.

Un flux est vérifié selon un calendrier, et chaque élément apparu après son ajout devient une publication sur les comptes de targets. Chaque publication passe par les mêmes contrôles que Créer une publication. Un flux publie au nom du membre qui l'a enregistré en dernier : créer, modifier ou reprendre un flux fait du membre de la clé son propriétaire.

MéthodeCheminDescription
GET/api/v1/rss-feedsLister les flux de l'espace de travail, du plus récent au plus ancien
POST/api/v1/rss-feedsConnecter un flux
POST/api/v1/rss-feeds/previewRécupérer un flux sans l'enregistrer et afficher ses 5 éléments les plus récents
GET/api/v1/rss-feeds/:idObtenir un flux
PATCH/api/v1/rss-feeds/:idModifier les champs envoyés. L'URL ne peut pas changer
DELETE/api/v1/rss-feeds/:idArrêter de vérifier le flux. Les publications déjà créées restent
GET/api/v1/rss-feeds/:id/itemsLister les éléments que le flux a vus
POST/api/v1/rss-feeds/:id/pauseMettre le flux en pause
POST/api/v1/rss-feeds/:id/resumeEffacer le motif de pause et vérifier le flux dans la minute
POST/api/v1/rss-feeds/:id/checkAvancer la prochaine vérification à maintenant ; le flux est récupéré dans la minute

POST /api/v1/rss-feeds

Récupère le flux et enregistre chaque élément qui s'y trouve déjà, pour que seuls les éléments apparus ensuite soient publiés. Un espace de travail peut contenir jusqu'à 20 flux.

ChampTypeObligatoireDescription
urlstringOuiURL publique http ou https d'un flux RSS ou Atom
targetsarrayOui1 à 20 comptes, chacun { platform, connectionId, pageId }. connectionId est l'id du compte dans Comptes sociaux, et pageId est obligatoire pour FACEBOOK
postModestringOuiDRAFT crée un brouillon. SCHEDULE planifie la publication publishDelayMinutes après la découverte de l'élément. PUBLISH la publie tout de suite
contentModestringOuiTEMPLATE remplit template. AI rédige une légende par plateforme à partir de l'article, ajoute le lien et consomme 1 crédit IA par plateforme et par élément
namestringNonJusqu'à 120 caractères. Par défaut, le titre du flux
publishDelayMinutesintegerNon5 à 10080 (7 jours). Obligatoire quand postMode vaut SCHEDULE
templatestringNonTexte de la publication avec {title}, {link}, {description}, {author} et {feed}, jusqu'à 2000 caractères. Par défaut {title}\n\n{link}. La description, puis le titre, est raccourcie pour tenir sur chaque plateforme ; le lien n'est jamais coupé
aiInstructionsstringNonConsignes supplémentaires pour les légendes IA, jusqu'à 1000 caractères
includeImagebooleanNonJoindre l'image de l'élément, ou l'image d'aperçu de l'article. Par défaut true
twitterKeepLinksbooleanNonGarder les liens cliquables dans les publications X. Offres à vie uniquement, et chaque publication X avec un lien coûte alors plus de crédits. Par défaut false
includeKeywordsstring[]NonJusqu'à 50. Ne publier que les éléments dont le titre ou le résumé contient l'un d'eux
excludeKeywordsstring[]NonJusqu'à 50. Ignorer les éléments dont le titre ou le résumé contient l'un d'eux
maxPostsPerCheckintegerNon1 à 10, 3 par défaut. Les nouveaux éléments sont publiés du plus ancien au plus récent ; les autres attendent la vérification suivante
checkIntervalMinutesintegerNon15, 30, 60, 180, 360, 720 ou 1440. Par défaut 60
postLatestItembooleanNonPublier aussi l'élément le plus récent lors de la première vérification. Par défaut false

Les cibles possibles sont FACEBOOK, INSTAGRAM, THREADS, TWITTER, BLUESKY, LINKEDIN, MASTODON, TELEGRAM et GOOGLE_BUSINESS.

Exemple de requête :

{
  "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": "Nouveau sur le blog : {title}\n\n{link}",
  "excludeKeywords": ["sponsored"]
}

Renvoie 201 avec le flux :

{
  "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": "Nouveau sur le 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"
}

Une URL qui n'est pas un flux RSS ou Atom, un flux déjà connecté, une plateforme cible non prise en charge, un publishDelayMinutes manquant ou la limite de 20 flux renvoie 400. Un flux injoignable renvoie 503. Une clé sans la permission qu'exigent le mode de publication ou les légendes IA renvoie 403.

Champs d'un flux

ChampDescription
userIdLe membre au nom duquel le flux publie : celui qui l'a enregistré en dernier
statusACTIVE ou PAUSED
pauseReasonPourquoi le flux est en pause, renseigné seulement tant qu'il est PAUSED. Voir le tableau ci-dessous
lastErrorL'erreur à l'origine de la pause, quand un échec l'a causée
targets[].displayNameLe nom du compte, rempli par AdaptlyPost. Ignoré si vous l'envoyez
nextCheckAt, lastCheckedAt, lastPostedAtQuand le flux sera vérifié, quand il l'a été pour la dernière fois et quand il a créé sa dernière publication

Les autres champs reprennent les réglages ci-dessus.

Motif de pauseSignification
USERQuelqu'un l'a mis en pause via l'API ou l'application
FETCH_FAILURES5 récupérations de suite ont échoué
CONSECUTIVE_FAILURES3 éléments de suite n'ont pas pu être publiés
ACCESS_LOSTSon propriétaire a perdu la permission qu'exige son mode de publication
SUBSCRIPTION_INACTIVEL'offre ne couvre plus la publication
CONNECTION_REMOVEDTous les comptes cibles ont été déconnectés

Corrigez la cause, puis reprenez le flux.

POST /api/v1/rss-feeds/preview

Prend url et un template facultatif, récupère le flux sans rien enregistrer et renvoie url, title, siteUrl et ses 5 items les plus récents, chacun avec title, link, summary, publishedAt, imageUrl et text, l'élément rendu avec le modèle.

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

Liste les éléments que le flux a vus, du plus récent au plus ancien, sans ceux qui s'y trouvaient déjà lors de son ajout. limit accepte 1 à 100, 20 par défaut. Renvoie { "items": [...] }, chacun avec id, title, link, publishedAt, createdAt, status, postId et error.

Statut d'élémentSignification
BASELINEDéjà dans le flux lors de son ajout
PROCESSINGEn cours de transformation en publication
POSTEDEst devenu une publication. postId y renvoie
FILTEREDÉcarté par les règles de mots-clés
SKIPPEDPublié plus de 14 jours avant l'ajout du flux
FAILEDLa publication n'a pas pu être créée. error en donne la raison

Modifier, mettre en pause, reprendre, vérifier et supprimer

PATCH accepte les mêmes champs que la création, sauf url et postLatestItem, et ne modifie que ceux que vous envoyez. La pause, la reprise, la vérification et la suppression ne prennent pas de corps. Toutes sauf la suppression renvoient le flux ; la suppression renvoie { "deleted": true }. Un id qui n'existe pas ou qui appartient à un autre espace de travail renvoie 404.