API de messagerieAPI

Des messages privés sur tous les réseaux, depuis votre propre code

FoPost regroupe en un seul endroit chaque fil de DM de vos comptes connectés. Listez les conversations, démarrez-en de nouvelles, écrivez d’un coup à un segment de contacts ou étalez une série de messages sur plusieurs jours, le tout avec la même clé d’API.

GET /v1/inbox/conversations
curl "https://api.fopost.com/v1/inbox/conversations?workspace_id=9b2f6c1e-..." \
  -H "X-API-Key: $API_KEY"

{
  "data": [
    {
      "workspace_id": "9b2f6c1e-...",
      "account_id": "4a71d80b-...",
      "conversation_id": "t_1029384756",
      "message_count": 6,
      "unread_count": 2,
      "last_message_at": "2026-11-10T16:42:08Z",
      "last_message_text": "Is the large size back in stock?",
      "last_message_outbound": false,
      "participant": { "name": "Jordan P.", "handle": "jordanp", "avatar_url": "https://..." },
      "account": { "id": "4a71d80b-...", "platform": "instagram", "username": "yourbrand" }
    }
  ],
  "meta": { "page": 1, "per_page": 25, "total": 1, "total_pages": 1 }
}

Une seule liste de fils

Toutes les conversations DM de tous les comptes connectés, les plus récentes d’abord.

Diffusions

Un message dans les fils existants d’un ensemble filtré de contacts.

Séquences

Une série de messages, chacun envoyé un nombre d’heures défini après le précédent.

Conversations

Lisez un fil, répondez-y ou ouvrez-en un nouveau

Répondez dans un fil existant avec POST /v1/inbox/:id/reply. Démarrez une nouvelle conversation par identifiant sur X, Mastodon, Reddit et Slack, ou passez comment_id pour répondre en privé à un commentaire Instagram ou Facebook. Sur Facebook et Instagram, vous pouvez aussi afficher un indicateur de saisie, et sur Messenger passer un fil à une autre application puis le récupérer.

Lire la référence des conversations
POST /v1/inbox/conversations
curl -X POST https://api.fopost.com/v1/inbox/conversations \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "account_id": "4a71d80b-...",
    "handle": "jordanp",
    "text": "Thanks for the order. Your tracking link is on its way."
  }'

{ "conversation_id": "t_1029384756", "item": { "id": "2c9d4e81-...", "type": "dm", ... } }

Texte et médias

Jusqu’à 10 identifiants de médias de votre bibliothèque sont joints lorsque le réseau l’autorise.

Saisie et transfert

POST /v1/inbox/conversations/:id/typing et /handover pour les conversations Meta.

X Chat

Les conversations X chiffrées transitent sous forme de texte chiffré ; la clé reste dans le navigateur.

Diffusions

Écrivez à un segment sans enfreindre les règles des plateformes

Une diffusion arrive dans les conversations que votre compte a déjà avec un ensemble de contacts, filtré par réseau, étiquette, source ou champ personnalisé. Facebook, Instagram et WhatsApp n’autorisent un message professionnel que dans les 24 heures suivant le dernier message du contact ; les destinataires hors de cette fenêtre sont donc ignorés avec un motif, jamais sollicités. Sur WhatsApp, un modèle approuvé permet d’aller au-delà.

Voir la référence des diffusions
POST /v1/broadcasts/:id/send
curl -X POST https://api.fopost.com/v1/broadcasts \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workspace_id": "9b2f6c1e-...",
    "account_id": "4a71d80b-...",
    "name": "Restock, November",
    "text": "The large size is back in stock this week.",
    "audience": { "platforms": ["instagram"], "label_ids": ["d41e7a90-..."] }
  }'

curl -X POST https://api.fopost.com/v1/broadcasts/8e2a5c13-.../send -H "X-API-Key: $API_KEY"

{ "id": "8e2a5c13-...", "status": "sending", "recipients": 212 }

Envoyer maintenant ou plus tard

Définissez scheduled_at pour le mettre en file d’attente, ou annulez-le avant l’envoi.

Résultat par destinataire

GET /v1/broadcasts/:id/recipients indique envoyé, ignoré ou en échec, et pourquoi.

Envoyé une seule fois

Chaque destinataire est réservé avant l’envoi, donc une nouvelle tentative n’écrit jamais deux fois.

Séquences

Relancez sur plusieurs jours, automatiquement

Une séquence est une liste de 20 étapes maximum, chacune composée d’un message et d’un délai en heures après la précédente. Inscrivez des contacts par identifiant ou avec le même filtre d’audience qu’une diffusion, et désinscrivez-les à tout moment. Une étape qui tombe hors de la fenêtre de messagerie est ignorée et la séquence continue.

Voir la référence des séquences
POST /v1/sequences/:id/enroll
curl -X POST https://api.fopost.com/v1/sequences/5b9c2e40-.../enroll \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "contact_ids": ["a7f3c2d1-..."] }'

{ "id": "5b9c2e40-...", "enrolled": 1 }

Pause à tout moment

Définissez status sur paused et aucune étape ne part avant la reprise.

Désinscription

POST /v1/sequences/:id/unenroll arrête immédiatement un contact.

Nombre d’inscriptions

Actives, terminées, arrêtées et en échec, par séquence.

Contacts

Sachez à qui vous parlez

Les personnes qui écrivent à vos comptes deviennent automatiquement des contacts. Ajoutez-en à la main ou importez un CSV de 5 000 lignes maximum avec une colonne de plateforme et une colonne d’identifiant. Définissez jusqu’à 50 champs personnalisés par espace de travail (texte, nombre, date, sélection ou oui/non) et filtrez diffusions et séquences dessus.

Commencer à développer
Comptes connectés de tous les réseaux dans un seul espace de travail

Import CSV

POST /v1/contacts/import renvoie les lignes créées, fusionnées et ignorées, avec les motifs.

Champs personnalisés

Les colonnes correspondant à la clé d’un champ sont renseignées à l’import.

Historique complet

GET /v1/contacts/:id/conversations liste ce que chaque contact a écrit.

API de messagerie : vos questions, nos réponses

À quels réseaux puis-je écrire ?

Les conversations sont lues depuis Bluesky, Facebook, Instagram, Mastodon, Reddit, Slack, Telegram, WhatsApp et X lorsque le compte a accordé l’autorisation de messagerie. Démarrer une nouvelle conversation par identifiant fonctionne sur X, Mastodon, Reddit et Slack.

Qu’est-ce que la fenêtre de messagerie ?

Facebook, Instagram et WhatsApp n’acceptent un message professionnel que dans les 24 heures suivant le dernier message du contact. Les diffusions et séquences la vérifient avant chaque envoi et ignorent toute personne hors fenêtre, en consignant le motif.

De quelles portées de clé d’API ai-je besoin ?

Lire les conversations, contacts, diffusions et séquences nécessite la portée inbox. Toute action qui place un message sur un réseau, comme envoyer une diffusion ou inscrire un contact, nécessite aussi publish.

Une diffusion peut-elle écrire à des personnes qui ne nous ont jamais écrit ?

Non. Une diffusion arrive dans une conversation que le compte a déjà avec le contact. Les contacts sans conversation sont ignorés comme jamais contactés.

Quelque chose part-il sans que je l’aie demandé ?

Une diffusion part quand vous appelez send ou à l’heure programmée. Une séquence envoie ses étapes une fois quelqu’un inscrit. Aucun message n’est envoyé sans que vous l’ayez configuré.

Y a-t-il une limite de débit ?

Oui, 100 requêtes par minute et par clé. Les réseaux appliquent aussi leurs propres limites, et un envoi refusé renvoie le motif du réseau.

Développez avec API de messagerie dès aujourd'hui

Le démarrage est gratuit et l'API complète est incluse. Créez une clé et faites votre premier appel en quelques minutes.

Obtenir votre clé d’API