eChat MCP server
The eChat MCP (Model Context Protocol) server lets an AI assistant — Claude, Cursor, ChatGPT or any MCP client — set up, train, configure and evaluate your eChat agents for you: create an agent, write its instructions and product context, change its model and escalation settings, add Q&A and documents, crawl websites, import past conversations, review what they produced, run evaluations and compare the results.
It is a thin layer over the eChat REST API: every tool is a REST route, listed below with its route and the permission it needs. It cannot send messages to an agent — visitor conversations go through the REST messages API or the widget.
Connect
The server speaks Streamable HTTP at:
https://api.echat.ewebinar.com/mcp
There is nothing to install. Point your client at the URL and sign in when it asks.
Signing in (recommended)
The server answers an unauthenticated request with the OAuth metadata your client needs, so the URL is the whole configuration. Your client registers itself with eWebinar, sends you to eWebinar to sign in, and you choose what to allow:
| Permission | What it allows |
|---|---|
| Read | See agents, training, chat logs, analytics and eval results (always granted) |
| Configure and train | Create and configure agents and manage their training; some training actions spend credits |
| Run evaluations | Create eval suites and run evaluations, which spend credits |
| Delete | Delete agents, training, chat logs and eval data |
The assistant then acts as you, on the eChat account of the eWebinar team you signed in with. Sign in to eChat once first (from eWebinar or the eChat dashboard) so that account exists.
| Client | Configuration |
|---|---|
| Claude Code | claude mcp add --transport http echat https://api.echat.ewebinar.com/mcp |
| Cursor | {"mcpServers":{"echat":{"type":"http","url":"https://api.echat.ewebinar.com/mcp"}}} in .cursor/mcp.json |
| Claude Desktop | {"mcpServers":{"echat":{"command":"npx","args":["-y","mcp-remote","https://api.echat.ewebinar.com/mcp"]}}} |
| Anything else | The URL above; the server advertises OAuth and the client performs it |
Connecting with an API key
Where nobody can answer a browser prompt, send an eChat API key (Account settings → API keys, Pro plan and above) as a bearer token:
Authorization: Bearer fc_…
A key acts for the whole account and holds every permission, but it has no person behind it, so the tools that act through someone's own eWebinar connection — listing eWebinars, linking an agent to one, importing saved replies, building eval suites from eWebinar chats — and deleting an agent are unavailable.
What to expect
- Changes are live. There is no draft or publish step: a changed setting applies to the next conversation. A good client summarizes a change and asks before making it.
- Some tools spend credits. Conversation imports, AI answer suggestions and eval runs use message credits; their descriptions say so.
get_account_usageshows the balance. - Uploads are two steps. Tools that take a file return a presigned URL: PUT the file there (a client with a shell can use
curl -T), then call the matching register or create tool with the returned key.
Tool reference
Agents
list_agents
List the account's agents (newest first) with training status, how many training items wait for review, and conversation counts. Start here to find an agent id.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents
| Argument | Type | Required | Description |
|---|---|---|---|
cursor |
string | Continuation token. Omit on the first request, then pass the nextCursor of the previous page. |
|
limit |
integer | Page size, 1-200. Defaults to 50. |
create_agent
Create an agent. Give it a name, instructions (goal), product context and optionally a persona and settings; train it afterwards with the knowledge tools. Returns the new agent, including its id.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | yes | Agent name shown in eChat. |
goal |
string | null | Instructions: how the agent should behave and respond. | |
website_url |
string | null | Website the agent represents. | |
domain_context |
object | Product context. Merged key by key into the stored context. | |
persona |
object | The agent's persona: the name and avatar visitors see. | |
welcome_message |
string | null | First message a new visitor sees in the standalone widget. | |
settings |
object | Settings to change. Omitted keys stay as they are; null resets a key to its default. widget and conversationLifecycle merge key by key; every other key is replaced. | |
is_active |
boolean | Create the agent paused with false. Default true. |
get_agent
Read one agent: name, instructions (goal), product context, persona, welcome message and stored settings.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
update_agent
Change an agent's name, instructions (goal), website, product context (company name, product summary), persona (name, avatar), welcome message, or pause/resume it (is_active). Use update_agent_settings for model, language, grounding, escalation and widget settings.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: PATCH /agents/:agentId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
name |
string | Agent name shown in eChat. | |
goal |
string | null | Instructions: how the agent should behave and respond. null clears them. | |
website_url |
string | null | Website the agent represents. null clears it. | |
is_active |
boolean | false pauses the agent; true resumes it. | |
domain_context |
object | Product context. Merged key by key into the stored context. | |
persona |
object | The agent's persona: the name and avatar visitors see. | |
welcome_message |
string | null | First message a new visitor sees in the standalone widget. null removes it. |
delete_agent
Delete an agent and unlink it from any eWebinar it moderates. Its conversations and training go with it. Confirm with the user first.
Permission: Delete agents, training, chat logs and eval data · destructive · needs a signed-in person
REST: DELETE /agents/:agentId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
Agent settings
get_agent_settings
Read an agent's settings: model, language, grounding strictness, transcript answer mode, escalation, conversation lifecycle, widget and linked eWebinars. effective shows the values in use after defaults.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/settings
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
update_agent_settings
Change an agent's settings: model, language, grounding strictness, transcript answer mode, role, escalation (how people get involved), conversation lifecycle toggles, widget appearance, and which eWebinars it moderates (ewebinarIds). Send only what changes. Settings apply immediately to live conversations.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: PATCH /agents/:agentId/settings
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
language |
en | es | fr | de | it | pt | nl | pl | ru | ja | ko | zh | ar | hi | tr | sv | da | no | fi | null |
ISO 639-1 language the agent answers in. Default en. | |
chatModel |
claude-opus-4-8 | gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna | claude-opus-4-6 | claude-sonnet-4-6 | null |
Model that writes the agent's answers. Each answer costs the model's credit multiplier in message credits: claude-opus-4-8 (Claude 4.8 Opus, 6x), gpt-5.6-sol (GPT-5.6 Sol, 10x), gpt-5.6-terra (GPT-5.6 Terra, 3x), gpt-5.6-luna (GPT-5.6 Luna, 1x), claude-opus-4-6 (Claude 4.6 Opus, 5x), claude-sonnet-4-6 (Claude 4.6 Sonnet, 3x). Default gpt-5.6-terra. | |
groundingMode |
creative | balanced | conservative | null |
How strictly answers are checked against training. creative: never verified. balanced (default): one verification pass that removes contradicted claims. conservative (Strict in the editor): also checks each claim against retrieved evidence and drops what it cannot confirm. | |
transcriptAnswerMode |
covered_so_far | answer_anytime | null |
eWebinar agents only. covered_so_far (default): answer only from the part of the webinar the viewer has already watched. answer_anytime: answer from the whole transcript. | |
useCase |
sales | customer_success | support | null |
Role the agent's instructions start from (Role in the editor). Changing it does not rewrite existing instructions; set the agent's goal for that. | |
chatType |
webinar | landing_page | null |
webinar: an eWebinar AI moderator. landing_page: a standalone website chatbot. | |
videoType |
ewebinar | null |
Video platform for webinar agents. ewebinar is the only supported value. | |
ewebinarIds |
string[] | null | eWebinars this agent moderates (ids from list_ewebinar_webinars). Replaces the list: added webinars are linked to the agent in eWebinar and removed ones unlinked. Needs a signed-in person, not an API key. | |
escalation |
object | object | object | object | object | null | How the agent involves people. On an eWebinar turn every hand-off mode (email, integration, or unset) behaves as ewebinar_moderator. Replaced as a whole when set. | |
conversationLifecycle |
object | null | When conversations are escalated or resolved. Merged key by key; null resets a key to its default. | |
widget |
object | null | Standalone website widget appearance and visitor collection. Merged key by key; null resets a key. |
Q&A
list_qa_pairs
List an agent's Q&A pairs. Filter by status (published, proposed, proposed_update, needs_answer, not_needed), by the conversation source or Q&A import they came from, or by text. Use status=proposed,proposed_update to see the review queue.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/qa
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
status |
string | Comma-separated statuses to include: published, proposed, proposed_update, needs_answer, not_needed. Default all. | |
sourceId |
string | Only proposals from this conversation source (from list_conversation_sources). | |
importId |
string | Only pairs created by this Q&A import. | |
search |
string | Match against titles, questions and answers. | |
sortBy |
confidence |
confidence: proposals first, most confident first. Default: oldest first. | |
excludeChatProposals |
boolean | Leave out proposals from imported conversations. | |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-200. Default 50. |
create_qa_pair
Add a published Q&A pair: one answer and the questions it answers. The agent uses it right away. Prefer one pair per distinct intent.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
questions |
string[] | yes | Ways a visitor might ask this question. One pair answers all of them, so list only questions this exact answer fully answers. |
answer |
string | yes | The answer the agent should give (markdown). |
title |
string | Display title. Defaults to the first question. |
list_unanswered_questions
List questions visitors asked that neither the agent's training nor the imported conversations answered (status needs_answer). Answer one with answer_unanswered_question.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/qa/unanswered
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-200. Default 50. |
answer_unanswered_question
Write the answer to an unanswered question and publish it as a Q&A pair.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/answer
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
documentId |
string | yes | Id of the unanswered question (a needs_answer Q&A pair). |
answer |
string | yes | The answer to publish. |
dismiss_unanswered_question
Dismiss (delete) an unanswered question that does not need an answer.
Permission: Delete agents, training, chat logs and eval data
REST: POST /agents/:agentId/qa/dismiss-unanswered
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
documentId |
string | yes | Id of the unanswered question to dismiss. |
get_qa_pair
Read one Q&A pair: questions, answer, status, and review details for proposals.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/qa/:qaId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
update_qa_pair
Change a Q&A pair's questions, answer or title. To accept a proposal as-is or with edits, use approve_qa_pair instead.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: PUT /agents/:agentId/qa/:qaId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
questions |
string[] | Ways a visitor might ask this question. One pair answers all of them, so list only questions this exact answer fully answers. | |
answer |
string | New answer. | |
title |
string | New display title. |
delete_qa_pair
Delete a Q&A pair.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /agents/:agentId/qa/:qaId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
approve_qa_pair
Approve a proposed Q&A pair (status proposed or proposed_update) so the agent starts using it. Optionally pass an edited answer or questions.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/:qaId/approve
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
answer |
string | Publish this answer instead of the proposed one. | |
questions |
string[] | Ways a visitor might ask this question. One pair answers all of them, so list only questions this exact answer fully answers. |
reject_qa_pair
Reject a proposed Q&A pair or a proposed update.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/:qaId/reject
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
restore_qa_pair
Move a not_needed pair (one the import judged the agent already covers) back into the review queue.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/:qaId/restore
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
get_qa_answer_suggestion
Check the result of suggest_qa_answer for an unanswered question without starting new work or spending credits.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/qa/:qaId/suggest-answer
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
suggest_qa_answer
Draft an answer to an unanswered question from the agent's existing training (spends one message credit). Returns a draft to review, or reports that training already answers it. Publish a draft with answer_unanswered_question.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/:qaId/suggest-answer
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
qaId |
string | yes | Q&A pair id (from list_qa_pairs). |
bulk_approve_qa_pairs
Approve several proposed Q&A pairs at once, by id or every pending proposal from one conversation source. Review them first.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/bulk-approve
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
ids |
string[] | Q&A pair ids to approve. | |
sourceId |
string | Approve every pending proposal from this conversation source (used when ids is empty). |
bulk_reject_qa_pairs
Reject several proposed Q&A pairs at once, by id or every matching proposal from one conversation source.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/bulk-reject
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
ids |
string[] | Q&A pair ids to reject. | |
sourceId |
string | Reject every matching proposal from this conversation source (used when ids is empty). | |
statuses |
proposed | proposed_update | needs_answer[] |
With sourceId: which review statuses to reject. Default all three. |
delete_not_needed_qa_pairs
Permanently delete the not_needed pairs a conversation source produced. Pending and published pairs are kept.
Permission: Delete agents, training, chat logs and eval data
REST: POST /agents/:agentId/qa/bulk-delete-not-needed
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
sourceId |
string | yes | Conversation source whose not_needed pairs to delete. |
delete_all_published_qa_pairs
Delete EVERY published Q&A pair on the agent. Irreversible; only use when the user explicitly asks to clear all Q&A.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: POST /agents/:agentId/qa/bulk-delete
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
create_qa_import_upload_url
Get a presigned URL to upload a Q&A file (CSV, XLSX or JSON). PUT the file bytes to uploadUrl (for example with curl -T), then call create_qa_import with the returned s3Key. For small files, create_qa_import can take the content directly instead.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/imports/upload-url
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
fileName |
string | yes | File name including extension: .csv, .xlsx or .json. |
mimeType |
string | The file's MIME type. |
create_qa_import
Import Q&A pairs from a file's content or an uploaded file. Pass content (JSON array of {title?, questions, answer}, or CSV with question/answer columns) or an s3Key. Duplicate questions are skipped. Check progress with get_qa_import.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/imports
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
content |
string | File content pasted directly (JSON or CSV text). Preferred JSON: an array of { title?, questions: string[], answer }. | |
s3Key |
string | Key from create_qa_import_upload_url, after uploading. | |
fileName |
string | File name with extension (.json, .csv, .xlsx); decides how content is parsed. Default pasted.json. | |
name |
string | Name shown on the import card. |
list_qa_imports
List an agent's recent Q&A imports and their status.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/qa/imports
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
get_qa_import
Read one Q&A import's status and counts.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/qa/imports/:importId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
importId |
string | yes | Q&A import id (from list_qa_imports). |
retry_qa_import
Run a failed Q&A import again.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/qa/imports/:importId/retry
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
importId |
string | yes | Q&A import id (from list_qa_imports). |
delete_qa_import
Delete a Q&A import record. The Q&A pairs it created are kept.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /agents/:agentId/qa/imports/:importId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
importId |
string | yes | Q&A import id (from list_qa_imports). |
preview_ewebinar_saved_replies_import
Preview importing the team's eWebinar saved replies as proposed Q&A for an eWebinar-linked agent.
Permission: Read agents, training, chat logs, analytics and eval results · read-only · needs a signed-in person
REST: GET /agents/:agentId/qa/ewebinar-saved-replies
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
import_ewebinar_saved_replies
Import the team's eWebinar saved replies as proposed Q&A pairs to review. Only for agents linked to eWebinar.
Permission: Create and configure agents and manage their training (some training actions spend credits) · needs a signed-in person
REST: POST /agents/:agentId/qa/imports/ewebinar-saved-replies
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
Training sources
get_training_counts
Count an agent's training sources (websites, documents, quick docs) by status.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/counts
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
get_training_attention
Count what needs a person: paused website pages, Q&A proposals waiting for review, and unanswered questions.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/attention
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
list_knowledge_documents
List the indexed documents the agent retrieves answers from (pages, files, quick docs, Q&A, transcripts), optionally for one source.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/knowledge-documents
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
sourceId |
string | Only documents produced by this source. | |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-500. Default 100. |
list_quick_docs
List an agent's quick docs (typed markdown notes it trains on).
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/snippets
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-200. Default 50. |
create_quick_doc
Add a quick doc: a markdown note the agent trains on (policies, pricing, facts that are not on a website). Indexed in the background.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/snippets
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
title |
string | Title. | |
content |
string | yes | Markdown content the agent should know. |
get_quick_doc
Read one quick doc and its indexing status.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/snippets/:quickDocId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
quickDocId |
string | yes | Quick doc id. |
update_quick_doc
Change a quick doc's title or content; it is re-indexed.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: PUT /agents/:agentId/snippets/:quickDocId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
quickDocId |
string | yes | Quick doc id. |
title |
string | New title. | |
content |
string | New markdown content. |
delete_quick_doc
Delete a quick doc from the agent's training.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /agents/:agentId/snippets/:quickDocId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
quickDocId |
string | yes | Quick doc id. |
list_documents
List files uploaded to an agent's training and their processing status.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/documents
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-200. Default 50. |
create_document_upload_url
Get a presigned URL to upload a document for training. PUT the file bytes to uploadUrl (for example with curl -T), then call register_uploaded_document with the s3Key.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/documents/upload-url
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
fileName |
string | yes | File name including extension (PDF, DOCX, TXT, MD, CSV, XLSX and similar; legacy .doc is not supported). |
mimeType |
string | The file's MIME type; sent as the upload's Content-Type. |
register_uploaded_document
Start processing a document uploaded with create_document_upload_url. Check it with get_document.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/documents
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
s3Key |
string | yes | Key from create_document_upload_url, after uploading. |
fileName |
string | File name to show. Defaults to the key's file name. | |
mimeType |
string | The file's MIME type. |
get_document
Read one document: processing status and the content extracted from it.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/documents/:documentId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
documentId |
string | yes | Document id. |
delete_document
Delete an uploaded document and its indexed content.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /agents/:agentId/sources/documents/:documentId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
documentId |
string | yes | Document id. |
scan_website
Preview a website before adding it: lists the URLs a crawl would find, grouped by path, so you can pick include and exclude paths. Adds nothing.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/scan
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
url |
string | yes | Website or sitemap URL to scan. |
mode |
crawl | sitemap | single_url |
crawl (default) follows links; sitemap reads a sitemap; single_url is one page. |
list_website_sources
List the websites an agent trains on and their crawl status.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/websites
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-200. Default 50. |
create_website_source
Train the agent on a website: crawl from a URL, read a sitemap, or index a single page. Crawling runs in the background; check it with get_website_source.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/websites
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
url |
string | yes | Start URL (or sitemap URL in sitemap mode). |
mode |
crawl | sitemap | single_url |
yes | crawl follows links from the URL; sitemap reads a sitemap; single_url indexes one page. |
name |
string | Name shown in eChat. | |
includePaths |
string[] | Only crawl URLs under these path prefixes, e.g. ["/docs"]. | |
excludePaths |
string[] | Skip URLs under these path prefixes. | |
maxPages |
integer | Page limit for the crawl. Default 20. | |
slowScrape |
boolean | Crawl more slowly for sites that block fast crawlers or render with JavaScript. | |
recrawlInterval |
weekly | biweekly | monthly | null |
Re-crawl on this schedule to pick up changes. null or omitted: never. | |
discoveredUrls |
string[] | URLs from scan_website to crawl, instead of discovering them again. |
get_website_source
Read a website source: crawl settings, status, the latest crawl and a preview of its pages.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/websites/:websiteId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
websiteId |
string | yes | Website source id. |
update_website_source
Change a website source's crawl settings (paths, page limit, schedule). Pass recrawl=true to re-crawl with them now.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: PUT /agents/:agentId/sources/websites/:websiteId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
websiteId |
string | yes | Website source id. |
name |
string | Name shown in eChat. | |
includePaths |
string[] | Replace the include path prefixes. | |
excludePaths |
string[] | Replace the exclude path prefixes. | |
maxPages |
integer | New page limit. | |
slowScrape |
boolean | Crawl slowly. | |
recrawlInterval |
weekly | biweekly | monthly | null |
Re-crawl schedule; null turns it off. | |
recrawl |
boolean | Re-crawl now with the new settings. |
recrawl_website_source
Re-crawl a website source to pick up changes.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/websites/:websiteId/recrawl
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
websiteId |
string | yes | Website source id. |
force |
boolean | Re-crawl even when a recent crawl found no changes. | |
fresh |
boolean | Discard cached pages and fetch everything again. |
retry_failed_website_pages
Retry the pages of a website source that failed to crawl.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/websites/:websiteId/retry-failed
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
websiteId |
string | yes | Website source id. |
stop_website_crawl
Stop a website crawl in progress. Pages already indexed are kept.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/websites/:websiteId/stop
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
websiteId |
string | yes | Website source id. |
delete_website_source
Delete a website source and everything indexed from it.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /agents/:agentId/sources/websites/:websiteId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
websiteId |
string | yes | Website source id. |
list_website_urls
List the URLs a website source found and whether each was indexed.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/websites/:websiteId/urls
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
websiteId |
string | yes | Website source id. |
search |
string | Only URLs containing this text. | |
includeBlocked |
boolean | Include URLs excluded by the source's paths or robots rules. | |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-500. Default 50. |
list_conversation_sources
List an agent's imported conversation sources (eWebinar chat archives and uploaded exports) with their progress and how many Q&A they produced.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/chats
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
create_conversation_upload_url
Get a presigned URL to upload a support or sales conversation export (CSV, JSON or NDJSON). PUT the file to uploadUrl, then call import_conversations_from_file with the s3Key.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/chats/upload-url
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
fileName |
string | yes | File name including extension (CSV, JSON or NDJSON conversation export). |
mimeType |
string | The file's MIME type; sent as the upload's Content-Type. |
import_conversations_from_file
Import an uploaded conversation export: past answers become proposed Q&A to review. Spends message credits at provider cost. Track it with get_conversation_import_progress.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/chats
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
s3Key |
string | yes | Key from create_conversation_upload_url, after uploading. |
name |
string | Name shown in eChat. | |
maxAgeDays |
integer | How many days back to import. eWebinar imports are capped at 365 days in production. |
import_ewebinar_conversations
Import past chats from a linked eWebinar's archive so the agent learns from how moderators answered. Produces proposed Q&A to review. Spends message credits at provider cost; set maxCredits to cap it. One source per eWebinar.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/chats/ewebinar
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
ewebinarId |
string | The linked eWebinar whose archived chats to import. Default: the agent's linked eWebinars. | |
name |
string | Name shown in eChat. | |
maxAgeDays |
integer | How many days back to import. eWebinar imports are capped at 365 days in production. | |
maxCredits |
integer | Stop once the import has spent this many credits (newest conversations are imported first). | |
from |
string | Start of the window (last chat activity). Default: maxAgeDays ago. | |
to |
string | End of the window. Default: now. |
get_conversation_source
Read one conversation source: status, counts and import window.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/chats/:conversationSourceId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
get_conversation_import_progress
Check how far a conversation import has got.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/chats/:conversationSourceId/progress
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
update_conversation_source
Change how far back a conversation source imports (maxAgeDays) or its credit budget. After widening the window, call resume_conversation_import to import the older conversations.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: PATCH /agents/:agentId/sources/chats/:conversationSourceId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
maxAgeDays |
integer | yes | How many days back to import. eWebinar imports are capped at 365 days in production. |
maxCredits |
integer | New credit budget (eWebinar imports only). |
retry_conversation_import
Retry a failed conversation import.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/chats/:conversationSourceId/retry
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
stop_conversation_import
Stop a running conversation import. Q&A already extracted is kept.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/chats/:conversationSourceId/stop
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
resume_conversation_import
Resume a conversation import: process batches left over when its credit budget ran out, or the older conversations after widening its window. Spends credits.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/chats/:conversationSourceId/resume
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
continue_conversation_import
Continue a stopped conversation import from where it left off. Spends credits.
Permission: Create and configure agents and manage their training (some training actions spend credits)
REST: POST /agents/:agentId/sources/chats/:conversationSourceId/continue
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
reimport_conversation_source
Start a conversation source over: its extracted results are wiped and the conversations imported again. Spends credits again. Confirm with the user first.
Permission: Create and configure agents and manage their training (some training actions spend credits) · destructive
REST: POST /agents/:agentId/sources/chats/:conversationSourceId/renormalize
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
list_conversation_source_unanswered
List the unanswered questions one conversation source produced.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/sources/chats/:conversationSourceId/unanswered
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-200. Default 50. |
delete_conversation_source
Delete a conversation source and its pending proposals. Q&A already approved from it stays.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /agents/:agentId/sources/chats/:conversationSourceId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationSourceId |
string | yes | Conversation source id. |
Chat logs
list_conversations
List an agent's conversations (chat logs), most recently active first, with the latest visitor message and reply. Use has_messages_only=true for what the Chat logs page shows.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/visitors
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
from |
string | Only conversations started at or after this time. | |
to |
string | Only conversations started at or before this time. | |
has_messages_only |
boolean | Only conversations with at least one message (what Chat logs shows). | |
chat_opened_only |
boolean | Only visitors who opened the chat. | |
ewebinar_conversation_id |
string | Find the conversation for this eWebinar conversation id. | |
is_test |
boolean | true for conversations from the editor's test mode instead of real visitors. | |
count_only |
boolean | Return only totalCount. |
|
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-200. Default 50. |
get_conversation
Read one conversation's visitor details, state and eWebinar.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/visitors/:conversationId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationId |
string | yes | Conversation (visitor) id, from list_conversations. |
is_test |
boolean | true for conversations from the editor's test mode instead of real visitors. |
list_conversation_messages
Read a conversation's transcript. Returns the newest page (oldest message first); pass nextCursor as cursor to read further back.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/visitors/:conversationId/messages
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationId |
string | yes | Conversation (visitor) id, from list_conversations. |
is_test |
boolean | true for conversations from the editor's test mode instead of real visitors. | |
cursor |
string | The oldest message already loaded; returns the page before it. | |
limit |
integer | Page size. Default 50. |
delete_conversation
Delete a conversation with its messages and images. Irreversible.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /agents/:agentId/visitors/:conversationId
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
conversationId |
string | yes | Conversation (visitor) id, from list_conversations. |
Analytics
get_agent_stats
Read an agent's daily analytics (conversations, messages and related counts) for a date range.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /agents/:agentId/stats
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
from |
string | First day (YYYY-MM-DD, UTC). Pass with to. | |
to |
string | Last day (YYYY-MM-DD, UTC). Pass with from. |
Evaluations
list_eval_suites
List an agent's evaluation sets (eval suites) with each one's latest and first run scores, so you can see whether changes are helping.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/suites
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
list_ewebinar_eval_conversations
List past eWebinar chats that could make up an eval suite for an eWebinar-linked agent, preferring conversations the agent was not trained on. Use the ids with create_ewebinar_eval_suite.
Permission: Read agents, training, chat logs, analytics and eval results · read-only · needs a signed-in person
REST: GET /eval/suites/ewebinar-conversations
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
ewebinarId |
string | One linked eWebinar. Default: all the agent's linked eWebinars. | |
from |
string | Start of the window. | |
to |
string | End of the window. | |
maxAgeDays |
integer | Window length in days, when from is omitted. | |
minTurns |
integer | Minimum reference replies. Default 2. | |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-500. Default 200. |
create_ewebinar_eval_suite
Create an eval suite for an eWebinar-linked agent from its archived webinar chats (a sample, or the conversations you pick). Free to create; run it with start_eval_run.
Permission: Create eval suites and run evaluations (runs spend credits) · needs a signed-in person
REST: POST /eval/suites/ewebinar-suggested
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
selectedConversationIds |
string[] | eWebinar conversation ids to use (from list_ewebinar_eval_conversations). Default: a sample. | |
ewebinarIds |
string[] | Linked eWebinars to draw from. Default: all of them. | |
from |
string | Start of the window. | |
to |
string | End of the window. | |
maxAgeDays |
integer | Window length in days, when from is omitted. | |
minTurns |
integer | Skip conversations with fewer reference replies than this. Default 2. | |
sampleLimit |
integer | Conversations to sample into the suite. Default 50. |
create_eval_suite_upload_url
Get a presigned URL to upload a conversation export for an eval suite. PUT the file to uploadUrl, then call create_eval_suite with the s3Key.
Permission: Create eval suites and run evaluations (runs spend credits)
REST: POST /eval/suites/upload-url
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
fileName |
string | yes | Conversation export file name (CSV, JSON or NDJSON). |
mimeType |
string | The file's MIME type. |
create_eval_suite
Create an eval suite from an uploaded conversation export (s3Key) or an existing conversation source (chatSourceId). Free to create; poll get_eval_suite until status is ready, then run it with start_eval_run.
Permission: Create eval suites and run evaluations (runs spend credits)
REST: POST /eval/suites
| Argument | Type | Required | Description |
|---|---|---|---|
agentId |
string | yes | Agent id (a UUID from list_agents / GET /agents). |
name |
string | Suite name. Default Eval Suite. | |
s3Key |
string | Uploaded conversation export (from create_eval_suite_upload_url). | |
chatSourceId |
string | Or: sample from an existing conversation source (from list_conversation_sources). | |
referenceSource |
human_agent | ai_agent |
human_agent (default): compare with people's replies. ai_agent: compare with an earlier AI moderator's replies. | |
mode |
support | sales |
Judging perspective. Default support. | |
dateFrom |
string | For an uploaded file, only conversations on or after this date. Not applied to a conversation source (chatSourceId). | |
dateTo |
string | Stored with the suite; not applied when building it. | |
manualSelection |
boolean | Pick conversations yourself (suite waits in selecting status) instead of sampling. | |
minTurns |
integer | Skip conversations with fewer reference replies than this. Default 2. | |
sampleLimit |
integer | Conversations to sample into the suite. Default 50. |
get_eval_suite
Read an eval suite: its status and the conversations in it.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/suites/:suiteId
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
preview_eval_suite_conversations
For a suite waiting for a manual pick (status selecting): list candidate conversations with short summaries. Choose with select_eval_suite_conversations.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/suites/:suiteId/conversation-previews
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
limit |
integer | Previews to return, 1-150. Default 75. |
select_eval_suite_conversations
Choose which conversations a manual-selection eval suite contains. Only once, while the suite is waiting for a pick (status selecting): the choice cannot be changed afterwards, so confirm it with the user. To evaluate other conversations, create a new suite.
Permission: Create eval suites and run evaluations (runs spend credits)
REST: POST /eval/suites/:suiteId/select-conversations
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
selectedConversationIds |
string[] | yes | Conversation ids from preview_eval_suite_conversations. |
delete_eval_suite
Delete an eval suite with all its runs and results.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /eval/suites/:suiteId
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
list_eval_cases
Page through the conversations (cases) in an eval suite.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/suites/:suiteId/cases
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
cursor |
string | Pass the previous page's nextCursor. | |
limit |
integer | Page size, 1-500. Default 100. |
get_eval_case
Read one conversation in an eval suite with all its messages.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/suites/:suiteId/cases/:caseId
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
caseId |
string | yes | Case id (from list_eval_cases). |
list_eval_runs
List an eval suite's runs with status and aggregate scores.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/suites/:suiteId/runs
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
start_eval_run
Run an eval suite: the agent (as configured now) answers every conversation in the suite and a judge scores each reply. Spends message credits (replies plus judging) — confirm with the user for large suites. Runs in the background; poll get_eval_run.
Permission: Create eval suites and run evaluations (runs spend credits)
REST: POST /eval/suites/:suiteId/runs
| Argument | Type | Required | Description |
|---|---|---|---|
suiteId |
string | yes | Eval suite id (from list_eval_suites). |
name |
string | Run name. Default Run N. | |
config |
object | Run settings. Omit to evaluate the agent exactly as configured. |
get_eval_run
Read an eval run: status, aggregate scores (scores_summary) and each conversation's result with the agent's replies and the judge's scores.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/runs/:runId
| Argument | Type | Required | Description |
|---|---|---|---|
runId |
string | yes | Eval run id (from list_eval_runs). |
stop_eval_run
Stop a pending or running eval. Conversations already scored keep their results; no more credits are spent.
Permission: Create eval suites and run evaluations (runs spend credits)
REST: POST /eval/runs/:runId/stop
| Argument | Type | Required | Description |
|---|---|---|---|
runId |
string | yes | Eval run id (from list_eval_runs). |
delete_eval_run
Delete an eval run and its results.
Permission: Delete agents, training, chat logs and eval data · destructive
REST: DELETE /eval/runs/:runId
| Argument | Type | Required | Description |
|---|---|---|---|
runId |
string | yes | Eval run id (from list_eval_runs). |
compare_eval_runs
Compare two runs of the same eval suite: per-conversation score changes and both runs' replies, to see what a change to the agent improved or broke.
Permission: Read agents, training, chat logs, analytics and eval results · read-only
REST: GET /eval/runs/:runId/diff/:otherRunId
| Argument | Type | Required | Description |
|---|---|---|---|
runId |
string | yes | The baseline run. |
otherRunId |
string | yes | The run to compare against the baseline (same suite). |
Account
get_account_usage
Read the account's plan, message credit balance, training storage and agent slots. Check it before large conversation imports or eval runs, which spend credits.
Permission: Read agents, training, chat logs, analytics and eval results · read-only · needs a signed-in person
REST: GET /billing/subscription/summary
No arguments.
eWebinar
list_ewebinar_webinars
List the webinars on the user's eWebinar team, with which chatbot (if any) moderates each. Use an ewebinarId in update_agent_settings.ewebinarIds to make an agent their AI moderator.
Permission: Read agents, training, chat logs, analytics and eval results · read-only · needs a signed-in person
REST: GET /account/integrations/ewebinar/webinars
No arguments.
get_ewebinar_webinar
Read one webinar on the user's eWebinar team.
Permission: Read agents, training, chat logs, analytics and eval results · read-only · needs a signed-in person
REST: GET /account/integrations/ewebinar/webinars/:ewebinarId
| Argument | Type | Required | Description |
|---|---|---|---|
ewebinarId |
string | yes | eWebinar id (the webinar set id from list_ewebinar_webinars). |
sync_ewebinar_transcript
Get the webinar transcript an eWebinar-linked agent answers from, loading it into the agent's training if it is missing. Pass refresh=true after the webinar's video or transcript changed.
Permission: Create and configure agents and manage their training (some training actions spend credits) · needs a signed-in person
REST: GET /account/integrations/ewebinar/webinars/:ewebinarId/transcript
| Argument | Type | Required | Description |
|---|---|---|---|
ewebinarId |
string | yes | eWebinar id (the webinar set id from list_ewebinar_webinars). |
agentId |
string | The agent linked to this eWebinar. Default: the most recently updated linked agent. | |
refresh |
boolean | Fetch the transcript from eWebinar again even when the agent already has it. |