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éthode | Chemin | Description |
|---|---|---|
| GET | /api/v1/rss-feeds | Lister les flux de l'espace de travail, du plus récent au plus ancien |
| POST | /api/v1/rss-feeds | Connecter un flux |
| POST | /api/v1/rss-feeds/preview | Récupérer un flux sans l'enregistrer et afficher ses 5 éléments les plus récents |
| GET | /api/v1/rss-feeds/:id | Obtenir un flux |
| PATCH | /api/v1/rss-feeds/:id | Modifier les champs envoyés. L'URL ne peut pas changer |
| DELETE | /api/v1/rss-feeds/:id | Arrêter de vérifier le flux. Les publications déjà créées restent |
| GET | /api/v1/rss-feeds/:id/items | Lister les éléments que le flux a vus |
| POST | /api/v1/rss-feeds/:id/pause | Mettre le flux en pause |
| POST | /api/v1/rss-feeds/:id/resume | Effacer le motif de pause et vérifier le flux dans la minute |
| POST | /api/v1/rss-feeds/:id/check | Avancer 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.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| url | string | Oui | URL publique http ou https d'un flux RSS ou Atom |
| targets | array | Oui | 1 à 20 comptes, chacun { platform, connectionId, pageId }. connectionId est l'id du compte dans Comptes sociaux, et pageId est obligatoire pour FACEBOOK |
| postMode | string | Oui | DRAFT crée un brouillon. SCHEDULE planifie la publication publishDelayMinutes après la découverte de l'élément. PUBLISH la publie tout de suite |
| contentMode | string | Oui | TEMPLATE 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 |
| name | string | Non | Jusqu'à 120 caractères. Par défaut, le titre du flux |
| publishDelayMinutes | integer | Non | 5 à 10080 (7 jours). Obligatoire quand postMode vaut SCHEDULE |
| template | string | Non | Texte 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é |
| aiInstructions | string | Non | Consignes supplémentaires pour les légendes IA, jusqu'à 1000 caractères |
| includeImage | boolean | Non | Joindre l'image de l'élément, ou l'image d'aperçu de l'article. Par défaut true |
| twitterKeepLinks | boolean | Non | Garder 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 |
| includeKeywords | string[] | Non | Jusqu'à 50. Ne publier que les éléments dont le titre ou le résumé contient l'un d'eux |
| excludeKeywords | string[] | Non | Jusqu'à 50. Ignorer les éléments dont le titre ou le résumé contient l'un d'eux |
| maxPostsPerCheck | integer | Non | 1 à 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 |
| checkIntervalMinutes | integer | Non | 15, 30, 60, 180, 360, 720 ou 1440. Par défaut 60 |
| postLatestItem | boolean | Non | Publier 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
| Champ | Description |
|---|---|
| userId | Le membre au nom duquel le flux publie : celui qui l'a enregistré en dernier |
| status | ACTIVE ou PAUSED |
| pauseReason | Pourquoi le flux est en pause, renseigné seulement tant qu'il est PAUSED. Voir le tableau ci-dessous |
| lastError | L'erreur à l'origine de la pause, quand un échec l'a causée |
| targets[].displayName | Le nom du compte, rempli par AdaptlyPost. Ignoré si vous l'envoyez |
| nextCheckAt, lastCheckedAt, lastPostedAt | Quand 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 pause | Signification |
|---|---|
| USER | Quelqu'un l'a mis en pause via l'API ou l'application |
| FETCH_FAILURES | 5 récupérations de suite ont échoué |
| CONSECUTIVE_FAILURES | 3 éléments de suite n'ont pas pu être publiés |
| ACCESS_LOST | Son propriétaire a perdu la permission qu'exige son mode de publication |
| SUBSCRIPTION_INACTIVE | L'offre ne couvre plus la publication |
| CONNECTION_REMOVED | Tous 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ément | Signification |
|---|---|
| BASELINE | Déjà dans le flux lors de son ajout |
| PROCESSING | En cours de transformation en publication |
| POSTED | Est devenu une publication. postId y renvoie |
| FILTERED | Écarté par les règles de mots-clés |
| SKIPPED | Publié plus de 14 jours avant l'ajout du flux |
| FAILED | La 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.