{origin}/mcp: read analytics, manage your AI assistants, and send
messages and broadcasts. Same business logic and auth as the REST API.
Every tool is scoped to your business over OAuth and carries read-only / destructive hints,
so the agent knows what’s safe to call before it calls it. Titles and descriptions ship in
English and Portuguese. Connect Claude, ChatGPT, or Cursor in one click.
Choosing WhatsApp tooling for AI agents?
How iZap compares to transport-only APIs (Twilio, Cloud API, 360dialog) and no-code
inboxes — and when each is the right pick.
Connect
Authentication is OAuth 2.0 (interactive clients bootstrap it automatically) or a Bearer JWT for server-to-server code. Register it as a remote HTTP MCP server:Add to your AI client
Point any MCP-capable client at the URL above — interactive clients run the OAuth login for you.- Cursor
- Claude
- ChatGPT
- Codex CLI
- Manus
- Grok
One-click: open Add iZap to Cursor and confirm the install — or paste this link into your browser:Manual — add to
~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):Swap the host for the staging URL (
https://api-staging.izap.ai/mcp) to test against staging.Tool catalog
All tools accept an optionalbusiness_id (UUID); omit it to use your first
business. Read-only tools are safe to call freely; the ones marked write create,
change, or send.
Analytics (read-only)
AI assistants
Contacts & WhatsApp messaging
Media library
Broadcast transmissions
Notes
-
Dates are ISO-8601 strings (e.g.
2026-04-15); timezone is an IANA name (e.g.America/Sao_Paulo). -
search_messages(and its legacy namesearch_today_messages) is rate-limited per user per day. -
create_whatsapp_templatereturns as soon as Meta accepts the template for review; approval is asynchronous, so pollget_whatsapp_template_statusfor the verdict. A template only appears inlist_whatsapp_templatesonce Meta holds it — that tool reads Meta’s catalog, not local drafts. -
send_whatsapp_template_messageneeds a file for a template approved with a media header (document, image or video), named exactly one of three ways:header_media_image_id— an image already in the media library, fromupload_library_imageorlist_library_images. Preferred for anything reused: iZap reads it straight from storage, so nothing expires and no URL is involved.header_media_document_id— the same for a document or video, fromupload_library_documentorlist_library_documents. Itsheader_kind(documentorvideo) says which template header format it fits.header_media_url— a publicly reachablehttps://URL that iZap fetches.header_media_base64— the bytes themselves, for a one-off file. Not saved to the library; callupload_library_imagefirst if it should be reusable. The type is read from the content, so JPEG, PNG, PDF, MP4 and 3GPP work and a text or Office document needsheader_media_url.
header_media_filenameto control the name a document shows the recipient. The file may differ on every send — only the header format is fixed by the approved template. Documents accept PDF, plain text, Word, Excel and PowerPoint up to 100 MB; images accept JPEG/PNG up to 5 MB and videos MP4/3GPP up to 16 MB. Passing a header for a template without a media header — or omitting it for one with — fails before anything is sent. -
The media library stores GIF and WebP, which WhatsApp will not accept as a template
header image.
list_library_imagesreportsusable_as_template_headerper image so you can pick a valid one instead of discovering it at send time. -
Templates with a media header must be created in Meta’s WhatsApp Manager;
create_whatsapp_templatecannot submit one yet. -
Server errors surface as MCP tool errors (
isError: true) with the messageError <status>: <detail>; a401means refresh the token.
Build with the MCP in your code
Get a token, then use the Python or TypeScript MCP SDK to call these tools from
your own app or agent.