For Agents
Send messages to Chatfuel bot users, set user attributes, and broadcast to the bot's audience. Token-authenticated REST API with 4 endpoints scoped per bot.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Chatfuel API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Chatfuel API.
Send a one-off message to a specific bot user via POST /bots/{botId}/users/{userId}/send
List the users of a bot via GET /bots/{botId}/users with optional tag and segment filters
Update user attributes that downstream Chatfuel flows can branch on via PUT /bots/{botId}/users/{userId}/attributes
GET STARTED
Use for: Send a Chatfuel message to a specific Messenger user, Broadcast a message to all subscribers of my Chatfuel bot, Set a user attribute on a Chatfuel user from a webhook, List all users of my Chatfuel bot tagged 'lead'
Not supported: Does not handle flow authoring, NLP intent training, or chatbot building UI — use for runtime messaging, attribute writes, and broadcasts on existing Chatfuel bots only.
Jentic publishes the only available OpenAPI specification for Chatfuel API, keeping it validated and agent-ready. Chatfuel is a chatbot platform for Facebook Messenger, Instagram, and WhatsApp. The public REST API is small and focused: list bot users, send a message to a single user, set user attributes that flows can branch on, and broadcast a message to the bot's audience. Authentication is by Chatfuel token supplied as a query parameter on the relevant endpoints.
Broadcast a message to all users of a bot via POST /bots/{botId}/broadcast
Filter the bot user list by tag or segment to target re-engagement messages
Drive flow personalisation by writing per-user attributes from external systems
Trigger one-to-one conversations from external events without opening the Chatfuel UI
Patterns agents use Chatfuel API for, with concrete tasks.
★ Send a transactional reply from your backend to a Messenger user
When an external system has news for a known Messenger subscriber — order shipped, appointment confirmed — call POST /bots/{botId}/users/{userId}/send to deliver the message inside the existing chat thread. Chatfuel handles channel-specific delivery so the same call works regardless of whether the user came in via Messenger, Instagram, or WhatsApp.
After an order ships, call POST /bots/{botId}/users/{userId}/send to deliver 'Your order #1234 has shipped' to the user with the matching Chatfuel userId
Personalise flow branches with external data
Write per-user attributes via PUT /bots/{botId}/users/{userId}/attributes so Chatfuel flows can branch on values that originated outside Chatfuel — CRM lifecycle stage, last-purchase date, plan tier. Because attributes drive flow logic, this is the right way to keep flow personalisation in sync with the source-of-truth system.
Set the attribute lifecycle_stage='paying_customer' and plan_tier='pro' on Chatfuel userId 'msgr-9988' under botId 'acme-bot'
Run a re-engagement broadcast to a tagged segment
Use GET /bots/{botId}/users with the tag query parameter to enumerate dormant subscribers, then POST /bots/{botId}/broadcast to deliver a re-engagement message scoped to the same tag. Chatfuel's tag/segment filters let an agent target the broadcast without exporting the user list.
List Chatfuel users with tag 'dormant_30d' and broadcast a re-engagement message to that segment via POST /bots/{botId}/broadcast
Drive a Chatfuel bot from an AI agent
An AI agent uses Jentic to discover Chatfuel's send and broadcast endpoints, loads their schemas, and triggers messenger-channel outreach in response to natural-language requests like 'tell my Messenger subscribers we just launched the new feature'. The Chatfuel token sits in Jentic's vault so the agent never sees it.
Search Jentic for 'send a chatfuel broadcast', load the schema, and broadcast 'New feature launched: shareable receipts' to all users of botId 'acme-bot'
4 endpoints — jentic publishes the only available openapi specification for chatfuel api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/bots/{botId}/users
List bot users (optional tag/segment filters)
/bots/{botId}/users/{userId}/send
Send a message to a specific user
/bots/{botId}/users/{userId}/attributes
Set attributes on a user
/bots/{botId}/broadcast
Send a broadcast to the bot's audience
/bots/{botId}/users
List bot users (optional tag/segment filters)
/bots/{botId}/users/{userId}/send
Send a message to a specific user
/bots/{botId}/users/{userId}/attributes
Set attributes on a user
/bots/{botId}/broadcast
Send a broadcast to the bot's audience
Three things that make agents converge on Jentic-routed access.
Credential isolation
Chatfuel API tokens are stored encrypted in the Jentic vault (MAXsystem). Agents receive scoped access — the raw token never enters the agent's prompt context, including when it is injected into the chatfuel_token query parameter at execution time.
Intent-based discovery
Agents search by intent (e.g., 'send a chatfuel broadcast' or 'set chatfuel user attribute') and Jentic returns the matching Chatfuel operations with their input schemas.
Time to first call
Direct Chatfuel integration: a few hours to wire up token handling and the four endpoints. Through Jentic: under 30 minutes — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Chatfuel API through Jentic.
Why is there no official OpenAPI spec for Chatfuel API?
Chatfuel does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Chatfuel API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Chatfuel API use?
Chatfuel uses an API token passed as the chatfuel_token query parameter on requests against api.chatfuel.com. Through Jentic, the token is stored in the encrypted MAXsystem vault and injected into the query string at execution time so it never enters the agent's prompt.
Can I send a one-off message to a specific Messenger user?
Yes — POST /bots/{botId}/users/{userId}/send delivers a single message to one user. The userId is Chatfuel's identifier for that subscriber, so you must have it from a prior list-users call or a Chatfuel webhook before invoking this endpoint.
How do I broadcast to a specific segment of users?
List users with GET /bots/{botId}/users using the tag or segment query parameter to confirm the audience, then call POST /bots/{botId}/broadcast with the same segment metadata. Chatfuel applies channel-specific delivery rules so the broadcast respects Messenger/Instagram/WhatsApp policy.
How do I trigger a Chatfuel broadcast through Jentic?
Run pip install jentic, set JENTIC_AGENT_API_KEY, then search 'send a chatfuel broadcast'. Jentic returns POST /bots/{botId}/broadcast with its request schema. Supply botId and the message body, then execute.
Are there documented rate limits for the Chatfuel API?
The OpenAPI spec does not declare per-bot rate limits. Messenger and Instagram apply their own platform-level limits to the underlying delivery, so broadcasts and one-off sends can fail downstream even when the Chatfuel API accepts the call. Monitor message-status responses and back off on 429 errors.