pluggzyDocs

Messenger

InboxMessage requestsPages
Connect Messenger

Messenger is your Facebook login under its own name: read and answer your chats, message requests and Page conversations from any AI app, paced 10–20 seconds apart. It uses the same conversation tools as every channel.

Connect with email and password, in your browserTools 10
3 / dayposts, published or scheduled
10–20 sbetween actions, at random
10,000characters of text
50 / daymessages and replies
Generated from the live server · same numbers your AI app gets

Limits

Per connected Messenger account, shared by every AI app and API key that uses it. The same tools work on every network: each account keeps its own limits.

ActionPer dayPer minuteMin gapPacedTools
Readsinbox, invitations, posts list3,00030——list_chatsget_messagesget_attachmentlist_group_membersfacebook_list_pages
Inbox updatesmark read, reactions500101 s—mark_readreact
Messages50215 s10–20 ssend_messageaccept_message_request
New conversations1011 min10–20 sstart_chat
Reads3,000 /day
inbox, invitations, posts list
30/min · not paced
list_chats, get_messages, get_attachment, list_group_members, facebook_list_pages
Inbox updates500 /day
mark read, reactions
10/min · min gap 1 s
mark_read, react
Messages50 /day
2/min · min gap 15 s · paced 10–20 s
send_message, accept_message_request
New conversations10 /day
1/min · min gap 1 min · paced 10–20 s
start_chat
Files in messages: one image (JPEG, PNG or WebP, up to 8 MB) or one document (PDF, Word, Excel, PowerPoint, TXT or CSV, up to 15 MB) per message. Your AI sees images people send (up to 3.75 MB) and reads PDF, Word, Excel, TXT and CSV files as text (up to 15 MB).Daily limits reset at 00:00 UTC, weekly ones on Monday 00:00 UTC.

Post rules

What Messenger accepts, checked before anything is sent so a bad post costs nothing.

TextUp to 10,000 characters, in text.
MediaOptional: one image (image_urls), not both. Files on your device go through upload_media first.
visibilityLinkedIn: anyone (default) or relations_only (connections). Facebook: anyone (default: everyone) or relations_only (friends; not as a Page). YouTube: public (default), private or unlistedanyonerelations_onlypublicprivateunlisted
as_pageFacebook: publish as this Page (page_id from facebook_list_pages) instead of the personal account
share_post_idFacebook: post_id of a post to share (text optional, no image; not schedulable)

Safety limits

What keeps your Messenger account in good standing. They apply across every AI app and API key on this account, and you can’t turn them off.

Human pace
10–20 s
Random gap between profile views, searches, messages, new conversations, invitations and posts, across every app and key.
Account-wide cap
10 / min
At most 10 calls a minute per account in total, reads aside, on top of each action’s own per-minute cap.
Cooldown on pushback
5 min
After a rate-limit answer the account rests at least 5 minutes, 30 when Messenger itself asked. Calls meanwhile get the time left.
Cached reads are free
1 h
Conversations and profiles are cached and cost nothing. fresh: true forces a live read.
New conversations
10 / day
Cold chats are what gets accounts restricted, so new conversations stay few. Replies in existing chats aren’t affected.
Friend requests & follows
15 / day
Kept low, 60 a week at most: Facebook blocks accounts that send many.

When a limit is hit

Nothing is queued or retried behind your back: the tool answers with an error your AI app can read, explain and retry on time.

gapToo soon after the last action. Wait retry_after_seconds.
limitThe daily or weekly limit is used up. Says when it resets.
cooldownMessenger pushed back; the account is resting.
permissionThis app wasn’t allowed to do that. Reconnect and allow it.
Example refusalisError
{
  "error": "Facebook actions are spaced 10–20 s apart, at random, to look human. Wait 10s.",
  "code": "gap",
  "retry_after_seconds": 10
}

Tools

Messenger uses Facebook’s chat tools: the same login, the same limits.

Inbox10
list_chatsList conversations · ReadsReads · 3,000/dayRead

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.

Permission Read your messagesLimit Reads · 3,000/day
Input8 params · 0 required
account
string
Only this account (account_id from list_accounts); default: every connected account, merged
provider
enum
Only this network's accounts
linkedinwhatsapptelegraminstagramfacebookinstagrambusiness
unread
boolean
Only conversations with unread messages
page_id
string
Facebook: the inbox of this Page (page_id from facebook_list_pages); send_message then answers as the Page
requests
boolean
Facebook: the Messenger message requests (people the account hasn't accepted yet), to answer with accept_message_request
limit
integer
default 201–50
cursor
string
next_cursor from a previous call
fresh
boolean
Bypass the 1h cache (costs a call to the network)
default false
OutputstructuredContent
{
  "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
}
Text content starts with “2 conversation(s) from 2 accounts, most recent first.”
Can refuse withgaplimitcooldownpermission
get_messagesRead a conversation · ReadsReads · 3,000/dayRead

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.

Permission Read your messagesLimit Reads · 3,000/day
Input6 params · 1 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idrequired
string
limit
integer
default 301–100
cursor
string
next_cursor from a previous call
fresh
boolean
default false
images
boolean
Show you the page's 3 most recent images with the result; false for text only
default true
OutputstructuredContent
{
  "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
}
Can refuse withgaplimitcooldownpermission
get_attachmentOpen an image or document from a message · ReadsReads · 3,000/dayRead

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.

Permission Read your messagesLimit Reads · 3,000/day
Input5 params · 3 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idrequired
string
message_idrequired
string
attachment_idrequired
string
attachments[].attachment_id from get_messages
offset
integer
A document: the character to start from (next_offset from the previous call); default the start
0–9,007,199,254,740,991
OutputstructuredContent
{
  "chat_id": "6Wx3HyhTVvKmNy2kP9zQ1A",
  "message_id": "3EB0A9C4D2F1E8B7A6C5",
  "attachment_id": "9f3c2a71-4b8e-4d1a-a6f0-2c5e8b7d1e94",
  "mimetype": "image/jpeg",
  "size_bytes": 184312
}
Text content starts with “The image from message 3EB0A9C4D2F1E8B7A6C5.”
Can refuse withgaplimitcooldownpermission
send_messageSend a message · MessagesMessages · 50/dayWrite

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).

Permission Send messages & postsLimit Messages · 50/dayPaced 10–20 sConfirm with the user first
Input7 params · 2 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idrequired
string
textrequired
string
max 8,000 chars
image_url
string
https link to a JPEG, PNG or WebP image (at most 8 MB) that is already online. Optional. For an image the user attached in the chat or has on their device, use media_id instead.
https://
file_url
string
https link to a document that is already online (PDF, Word, Excel, PowerPoint (docx, xlsx, pptx, doc, xls, ppt), TXT or CSV, at most 15 MB). Optional. For a file the user has on their device or attached in the chat, use media_id instead.
https://
media_id
string
An image or a document the user uploaded: call upload_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
boolean
Instagram Business: true only when the user typed this exact text or approved it word for word: lets the reply go out up to 7 days after the person's last message instead of 24 hours
default false
OutputstructuredContent
{
  "chat_id": "gq5Xp3bZUXCt6Zt1Z2rTsA",
  "message_id": "7mKQx2VdTnW8bLr4Yc9ey7",
  "sent": true
}
Text content starts with “Message sent.”
Can refuse withgaplimitcooldownpermission
start_chatStart a new conversation · New conversationsNew conversations · 10/dayWrite

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.

Permission Send messages & postsLimit New conversations · 10/dayPaced 10–20 sConfirm with the user first
Input9 params · 2 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
provider
enum
The network, when no account is given and several networks are connected
linkedinwhatsapptelegraminstagramfacebook
torequired
string
Recipient: LinkedIn person_id, WhatsApp phone number with country code, or Telegram / Instagram / Facebook user id
textrequired
string
max 8,000 chars
image_url
string
https link to a JPEG, PNG or WebP image (at most 8 MB) that is already online. Optional. For an image the user attached in the chat or has on their device, use media_id instead.
https://
file_url
string
https link to a document that is already online (PDF, Word, Excel, PowerPoint (docx, xlsx, pptx, doc, xls, ppt), TXT or CSV, at most 15 MB). Optional. For a file the user has on their device or attached in the chat, use media_id instead.
https://
media_id
string
An image or a document the user uploaded: call upload_media, then pass its media_id here once the file is uploaded (the user says so, or your own upload_command answered ok).
inmail
boolean
LinkedIn: send as InMail, to someone who isn't a 1st-degree connection
default false
subject
string
LinkedIn InMail subject
max 200 chars
OutputstructuredContent
{
  "chat_id": "Hs8vR2kLqP4wYt6Nc1dXbA",
  "message_id": "7mKQx2VdTnW8bLr4Yc9ez3",
  "sent": true
}
Text content starts with “Conversation started.”
Can refuse withgaplimitcooldownpermission
mark_readMark a conversation read · Inbox updatesInbox updates · 500/dayWrite

Marks a conversation read (or unread with read=false), on any network. Reading a conversation doesn't mark it read.

Permission Send messages & postsLimit Inbox updates · 500/day
Input3 params · 1 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idrequired
string
read
boolean
default true
OutputstructuredContent
{
  "chat_id": "gq5Xp3bZUXCt6Zt1Z2rTsA",
  "read": true
}
Can refuse withgaplimitcooldownpermission
reactReact to a message · Inbox updatesInbox updates · 500/dayWrite

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.

Permission Send messages & postsLimit Inbox updates · 500/day
Input5 params · 2 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idrequired
string
message_idrequired
string
reaction
string
One emoji, like 👍
max 16 chars
remove
boolean
Instagram Business: take the account's reaction back
default false
OutputstructuredContent
{
  "chat_id": "6Wx3HyhTVvKmNy2kP9zQ1A",
  "message_id": "3EB0A9C4D2F1E8B7A6C5",
  "reaction": "👍",
  "reacted": true
}
Can refuse withgaplimitcooldownpermission
accept_message_requestAccept a message request · MessagesMessages · 50/dayWrite

Accept a Messenger message request (chat_id from list_chats with requests: true). A personal Facebook account accepts it as is (the conversation moves to its inbox; reply with send_message). Confirm with the user first, and show them the exact text of any reply.

Permission Send messages & postsLimit Messages · 50/dayPaced 10–20 sConfirm with the user first
Input2 params · 1 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idrequired
string
OutputstructuredContent
{
  "chat_id": "Fb4Req8Lm2Np6Qr0St3Uv",
  "accepted": true
}
Text content starts with “Message request accepted.”
Can refuse withgaplimitcooldownpermission
list_group_membersList group members · ReadsReads · 3,000/dayRead

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.

Permission Read your messagesLimit Reads · 3,000/day
Input4 params · 1 required
account
string
account_id from list_accounts (a listed chat's account_id). Needed only when several accounts are connected.
chat_idrequired
string
limit
integer
default 501–100
cursor
string
next_cursor from a previous call
OutputstructuredContent
{
  "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
}
Text content starts with “2 member(s).”
Can refuse withgaplimitcooldownpermission
facebook_list_pagesList Facebook Pages · ReadsReads · 3,000/dayRead

On a personal Facebook account: the Pages it manages and that were activated when it connected, with their page_id: list_chats with page_id reads a Page's inbox (send_message then answers as the Page), and as_page on create_post, comment and facebook_react_post acts as the Page. A Page missing here was not activated: get a reconnect link (connect_account, provider facebook, mode reconnect); that login offers every Page again.

Permission Read your messagesLimit Reads · 3,000/day
Input1 param · 0 required
account
string
account_id of a Facebook account from list_accounts. Needed only when several Facebook accounts are connected.
OutputstructuredContent
{
  "pages": [
    {
      "page_id": "104512345678901",
      "name": "Northwind Studio",
      "inbox_id": "PAGE_104512345678901_INBOX",
      "messaging": true
    }
  ]
}
Text content starts with “1 Page(s).”
Can refuse withgaplimitcooldownpermission
The same tools on every inbox channel
list_chats, get_messages, send_message, start_chat and mark_read work the same way on Messenger and every other inbox channel; each account keeps its own limits.
Conversation tools →
Generated from pluggzy.com/api/docs · 38 toolsSomething unclear? Write to support · Status