Skip to main content
When an external AI agent talks to a website running Animam, it does not get direct access to the site’s tools. It talks to the Animam chatbot agent, and the chatbot orchestrates the tools (corpus lookup, calendar booking, payment, product recommendations, etc.) on its behalf. This is the only public agent surface. There is no separate tools/list endpoint exposed to anonymous callers — the chatbot is the agent.

Endpoint

No authentication required for tenants that have public chat enabled (default for paid plans). The widget-key gate, if configured, still applies.

Declaring you are an agent

Send the X-Agent-Model header so the chatbot knows it’s talking to another agent (not a human). It tags the conversation, switches the tool channel to api, and triggers the structured JSON envelope response automatically.
Fallback when you cannot set headers: prefix the first message with [AGENT:model-name] — the chatbot strips it out and treats the rest as the question.

Response shape (agent-aware)

When X-Agent-Model is present and stream is not explicitly set, you get a single JSON response. No SSE parsing.
The HTTP response also carries X-AI-Generated: true (AI Act Art. 50 transparency).

Tool executions, not tool calls

toolExecutions[] reports what the chatbot did internally — not actions you can invoke. The chatbot decides which tools to use based on the question. If the chatbot collects a contact via SUBMIT_FORM, books a meeting via BOOK_MEETING, or charges via COLLECT_PAYMENT, the agent caller sees it in toolExecutions[] with structured data. Useful for:
  • attribution (the agent caller wrote the lead, not a random visitor)
  • follow-up logic (e.g., the agent caller polls a CRM after seeing submission.created)
  • debugging (which tool ran, did it succeed, what did it return)
Raw inputs (the parameters the chatbot passed to the tool) are intentionally not in the envelope to avoid leaking PII the chatbot extracted from the conversation.

Multi-turn conversations

Reuse the returned sessionId (or conversationId):
The chatbot keeps full context across messages with the same sessionId.

Streaming (opt-in for agents)

Streaming is the default for browsers but opt-in for agents. Set stream: true to receive SSE chunks, ending with a done event that carries the same envelope fields.

Discovery before talking

Before sending the first message, an agent can introspect the tenant:
Returns bot persona, segments, capabilities and endpoints — useful to decide which segment to target.

Rate limits

When exceeded the API returns HTTP 429 with Retry-After.

Errors

Integration examples

Python — agent-to-agent

LangChain Tool

Next steps

Agent-Ready

Full agent-readiness layers (.well-known files, MCP, JSON-LD)

Discovery

Introspect a tenant before chatting