Lisez vos conversations et groupes WhatsApp et répondez-y depuis n’importe quelle app d’IA, réagissez aux messages et lancez de nouvelles conversations. Les messages sont espacés de 10 à 20 secondes et les nouvelles conversations restent rares, pour que votre numéro ne soit pas signalé.
Limites
Par compte WhatsApp connecté, partagées entre toutes les apps d’IA et clés API qui l’utilisent. Les mêmes outils servent sur chaque réseau : chaque compte garde ses propres limites.
list _chatsget _messagesget _attachmentlist _group _membersmark _readreactget _profilesend _messagestart _chatLimites de sécurité
Ce qui garde votre compte WhatsApp en règle. Elles s’appliquent à toutes les apps d’IA et clés API de ce compte, et vous ne pouvez pas les désactiver.
fresh: true force une lecture en direct.Quand une limite est atteinte
Rien n’est mis en file ni retenté dans votre dos : l’outil répond avec une erreur que votre app d’IA peut lire, expliquer et retenter au bon moment.
gapTrop tôt après la dernière action. Attendez retry_after_seconds.limitLa limite quotidienne ou hebdomadaire est épuisée. La réponse indique quand elle repart à zéro.cooldownWhatsApp a freiné ; le compte se repose.permissionCette app n’a pas le droit de faire cela. Reconnectez-la et autorisez cette action.{ "error": "WhatsApp actions are spaced 10–20 s apart, at random, to look human. Wait 10s.", "code": "gap", "retry_after_seconds": 10 }
Outils
Exactement ce que votre app d’IA reçoit de tools/list. Les outils d’écriture envoient ou modifient quelque chose sur votre compte : un bon assistant vous montre le texte avant l’envoi.
list_chatsList conversations · LecturesLectures · 3 000/jourLecture
Conversations across every connected inbox (LinkedIn, WhatsApp, Telegram, Instagram, Instagram Business, Facebook Messenger), merged and sorted most recent first; account or provider narrows it. Use unread=true to triage. Each item has chat_id, its account_id and provider (pass account_id as account to get_messages, send_message and the other conversation tools), and person_id for 1-to-1 chats. Facebook: page_id lists the inbox of one of a personal account's Pages (facebook_list_pages); requests=true the message requests. Accounts that can't be read right now are listed in skipped, with what to do.
accountaccount_id from list_accounts); default: every connected account, mergedproviderunreadpage_idpage_id from facebook_list_pages); send_message then answers as the Pagerequestsaccept_message_requestlimitcursornext_cursor from a previous callfresh{ "items": [ { "chat_id": "6Wx3HyhTVvKmNy2kP9zQ1A", "name": "Lucas Bernard", "person_id": "33612345678@s.whatsapp.net", "group": false, "unread": 1, "last_activity": "2026-11-09T08:42:17.000Z", "last_message": "See you at 10 tomorrow 👍", "read_only": false, "account_id": "8d41a7f0-2c6e-4b1a-a3d9-71e5c0b4f826", "provider": "whatsapp" }, { "chat_id": "gq5Xp3bZUXCt6Zt1Z2rTsA", "name": "Ada Martin", "person_id": "ACoAAA8BYqEBCVM2yBH2uI6u", "group": false, "unread": 1, "last_activity": "2026-11-09T08:42:17.000Z", "last_message": "Thanks for connecting! Do you have 15 minutes next week?", "read_only": false, "account_id": "3f2b8c1e-7a4d-4e9b-9c21-5d8e6f0a1b2c", "provider": "linkedin" } ], "next_cursor": "m1.eyJsIjoyMCwidSI6MCwiYSI6eyI4ZDQxYTdmMCI6eyJjIjoiMjAyNiJ9fX0", "has_more": true, "accounts_read": 2 }
gaplimitcooldownpermissionget_messagesRead a conversation · LecturesLectures · 3 000/jourLecture
Messages in one conversation (chat_id from list_chats), most recent first. 'from' is 'me' (the account owner, or the Page in a Facebook Page's chat) or 'them'; message_id values work with react. The 3 most recent images on the page come with the result for you to see (their attachments say shown_below: true); open any other, or read a document's text (PDF, Word, Excel…), with get_attachment. Every attachment has a url the user can open or download for 24 hours. Instagram Business: without cursor, reply_window says whether a reply can go out (open, user_written_only or closed). Facebook personal chats are end-to-end encrypted: older messages show only if the user unlocked their history when connecting.
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.chat_idobligatoirelimitcursornext_cursor from a previous callfreshimages{ "chat_id": "gq5Xp3bZUXCt6Zt1Z2rTsA", "items": [ { "message_id": "7mKQx2VdTnW8bLr4Yc9eFg", "from": "them", "text": "Thanks for connecting! Do you have 15 minutes next week?", "at": "2026-11-09T08:42:17.000Z" }, { "message_id": "7mKQx2VdTnW8bLr4Yc9ex1", "from": "me", "text": "Hi! Happy to send over the deck.", "at": "2026-11-08T16:05:41.000Z" } ], "next_cursor": null, "has_more": false }
gaplimitcooldownpermissionget_attachmentOpen an image or document from a message · LecturesLectures · 3 000/jourLecture
Opens a file someone sent or received in a conversation (chat_id, message_id and attachments[].attachment_id from get_messages). An image (JPEG, PNG, WebP, GIF, at most 3.75 MB) is shown to you, so you can see and describe it; get_messages already shows you a page's most recent images (shown_below: true): use this for the others. A document (PDF, Word .docx, Excel, TXT or CSV, at most 15 MB) comes back as its text, 50,000 characters at a time: next_offset says where to go on with offset. Scanned PDFs have no text. Videos, voice notes and PowerPoint files can't be opened: give the user the attachment's url. LinkedIn, WhatsApp, Telegram, Instagram and Facebook; Instagram Business and Facebook Pages messages give the file's link in get_messages instead.
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.chat_idobligatoiremessage_idobligatoireattachment_idobligatoireattachment_id from get_messagesoffsetnext_offset from the previous call); default the start{ "chat_id": "6Wx3HyhTVvKmNy2kP9zQ1A", "message_id": "3EB0A9C4D2F1E8B7A6C5", "attachment_id": "9f3c2a71-4b8e-4d1a-a6f0-2c5e8b7d1e94", "mimetype": "image/jpeg", "size_bytes": 184312 }
gaplimitcooldownpermissionsend_messageSend a message · MessagesMessages · 100/jourÉcriture
Reply in an existing conversation (chat_id from list_chats), on any network: 1-to-1, group, or a Facebook Page's chat (answered as the Page). Plain text. Show the user the exact text (and which file) before calling this. One file can go with the text: image_url (an https link to an image), file_url (an https link to a document) or media_id (from upload_media, for an image or a document the user has on their device or attached in the chat). Documents: PDF, Word, Excel, PowerPoint (docx, xlsx, pptx, doc, xls, ppt), TXT or CSV, at most 15 MB; WhatsApp, Telegram, LinkedIn and Facebook Messenger take PDF, Word, Excel, PowerPoint, TXT and CSV files; Instagram takes PDFs only; Instagram Business takes PDFs only and Facebook Pages any of them. Instagram Business allow replies within 24 hours of the person's last message (Instagram: at most 1000 characters, JPEG or PNG); up to 7 days after it, only a reply the user wrote or approved word for word, with user_written: true (never for text you wrote on your own).
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.chat_idobligatoiretextobligatoireimage_urlmedia_id instead.file_urlmedia_id instead.media_idupload_media, then pass its media_id here once the file is uploaded (the user says so, or your own upload_command answered ok).user_written{ "chat_id": "gq5Xp3bZUXCt6Zt1Z2rTsA", "message_id": "7mKQx2VdTnW8bLr4Yc9ey7", "sent": true }
gaplimitcooldownpermissionstart_chatStart a new conversation · Nouvelles conversationsNouvelles conversations · 10/jourÉcriture
Message someone you have no conversation with yet. Pick the account (or, with one account per network, the provider). `to`: LinkedIn: the person_id (from linkedin_search_people or get_profile) of a 1st-degree connection, or anyone with inmail=true (needs Premium InMail credits); WhatsApp: a phone number with its country code, like +33 6 12 34 56 78; Telegram, Instagram and Facebook: the user id (a chat's person_id, a group member's or friend's user_id, or from get_profile). New conversations have low daily limits (WhatsApp 10, Telegram 10, Instagram 10, Facebook 10), and networks restrict accounts that message strangers: WhatsApp bans new accounts after 2–3 cold messages; on Instagram and Facebook, people who don't follow or aren't friends get it as a message request. Only message people who expect it. Confirm the exact recipient and final text with the user before calling this. One file can go with the text: image_url (an https link to an image), file_url (an https link to a document) or media_id (from upload_media, for an image or a document the user has on their device or attached in the chat). Documents: PDF, Word, Excel, PowerPoint (docx, xlsx, pptx, doc, xls, ppt), TXT or CSV, at most 15 MB; WhatsApp, Telegram, LinkedIn and Facebook Messenger take PDF, Word, Excel, PowerPoint, TXT and CSV files; Instagram takes PDFs only; Instagram Business takes PDFs only and Facebook Pages any of them.
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.providertoobligatoireperson_id, WhatsApp phone number with country code, or Telegram / Instagram / Facebook user idtextobligatoireimage_urlmedia_id instead.file_urlmedia_id instead.media_idupload_media, then pass its media_id here once the file is uploaded (the user says so, or your own upload_command answered ok).inmailsubject{ "chat_id": "Hs8vR2kLqP4wYt6Nc1dXbA", "message_id": "7mKQx2VdTnW8bLr4Yc9ez3", "sent": true }
gaplimitcooldownpermissionmark_readMark a conversation read · Mises à jour de la messagerieMises à jour de la messagerie · 500/jourÉcriture
Marks a conversation read (or unread with read=false), on any network. Reading a conversation doesn't mark it read.
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.chat_idobligatoireread{ "chat_id": "gq5Xp3bZUXCt6Zt1Z2rTsA", "read": true }
gaplimitcooldownpermissionreactReact to a message · Mises à jour de la messagerieMises à jour de la messagerie · 500/jourÉcriture
Add an emoji reaction to a message (chat_id and message_id from get_messages) on WhatsApp (any emoji), Telegram (its standard reactions only: 👍 ❤️ 🔥 🎉 😁 👏 …), Instagram, Facebook Messenger or Instagram Business (within 24 hours of the person's last message; remove=true takes the account's reaction back). A new reaction replaces the account's previous one. For Facebook posts and comments use facebook_react_post.
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.chat_idobligatoiremessage_idobligatoirereactionremove{ "chat_id": "6Wx3HyhTVvKmNy2kP9zQ1A", "message_id": "3EB0A9C4D2F1E8B7A6C5", "reaction": "👍", "reacted": true }
gaplimitcooldownpermissionlist_group_membersList group members · LecturesLectures · 3 000/jourLecture
Members of a WhatsApp, Telegram or Facebook group chat (chat_id from list_chats, a group), with their user_id for get_profile and start_chat, and on WhatsApp their phone number.
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.chat_idobligatoirelimitcursornext_cursor from a previous call{ "chat_id": "120363041234567890@g.us", "items": [ { "user_id": "33612345678@s.whatsapp.net", "name": "Lucas Bernard", "phone": "+33612345678", "admin": true }, { "user_id": "447700900123@s.whatsapp.net", "name": "Emma Wilson", "phone": "+447700900123", "admin": false } ], "next_cursor": null, "has_more": false, "total": 2 }
gaplimitcooldownpermissionget_profileGet a profile · Visites de profilVisites de profil · 50/jourLecture
Read someone's profile on a connected account's network. LinkedIn: the full profile (headline, experience, education, skills, contact info when shared) by person_id or public identifier (the part after linkedin.com/in/). WhatsApp: a contact's WhatsApp id (a chat's person_id) or phone number with country code; Telegram: user id; Instagram: user id or username; Facebook: id or vanity name of a person or Page, or me. Name, username, phone when the network shares it, bio, followers and picture. Counts as a profile view.
accountaccount_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.provideruser_idobligatoireperson_id or public identifier; WhatsApp id or phone; Telegram, Instagram or Facebook user id (or username / vanity name)fresh{ "person_id": "ACoAAA8BYqEBCVM2yBH2uI6u", "public_id": "ada-martin-4b2a1c", "name": "Ada Martin", "headline": "VP Sales at Northwind Traders", "location": "Paris, Île-de-France, France", "degree": "FIRST_DEGREE", "summary": "Building sales teams that customers like talking to. 12 years in B2B SaaS.", "followers": 4820, "connections": 500, "premium": true, "open_profile": false, "url": "https://www.linkedin.com/in/ada-martin-4b2a1c", "experience": [ { "company": "Northwind Traders", "title": "VP Sales", "from": "3/2022", "to": "present" } ], "education": [ { "school": "ESSEC Business School", "degree": "Master in Management" } ], "skills": [ "B2B Sales", "Sales Management", "SaaS" ], "emails": [ "ada.martin@northwind.example" ] }
gaplimitcooldownpermission