Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the muro REST 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://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmuro.chat%2Fmuro" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fmuro.chat%2Fmuro" | 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 muro REST API.
Search the chat inbox with GET /conversations, filtering by status (open, closed, snoozed) and matching names, emails, or message text through the q parameter
Reply to a visitor or leave an internal note in a thread with POST /conversations/{id}/messages, using kind agent or note and an optional replyTo quote
Triage a conversation with PATCH /conversations/{id}: set status, replace tags, change assigned_user_id, mark it read or unread, and shallow-merge metadata
Close, open, snooze, mark read, or assign up to 100 conversations in one call with POST /conversations/bulk
GET STARTED
Generate or refresh an AI recap of a thread with POST /conversations/{id}/summary and read the stored one with GET /conversations/{id}/summary
Build automation rules that trigger on conversation.created or message.created and add a tag, assign, set a status, or reply
Enrich a visitor contact with a name, email, and metadata through PATCH /contacts/{id}
Patterns agents use muro REST API for, with concrete tasks.
★ Agent-drafted replies to live chat through Jentic
A support agent built on an LLM can keep a muro inbox answered between human shifts. Through Jentic it finds the muro list and reply operations by intent, pulls open conversations with GET /conversations?status=open, reads each thread with GET /conversations/{id}/messages, and posts a reply with POST /conversations/{id}/messages. Sending kind note instead of agent lets it leave a draft for a human to approve rather than answering the visitor directly.
Call GET /conversations with status open, then for conversation cnv_8f2a1b call GET /conversations/cnv_8f2a1b/messages and POST /conversations/cnv_8f2a1b/messages with content set to a suggested answer and kind set to note
Bulk inbox cleanup
Spam bursts and stale threads clutter a chat inbox. POST /conversations/bulk takes a list of up to 100 conversation ids and one action from close, open, snooze, read, unread, or assign, so a cleanup pass that would mean dozens of single updates becomes one request. Pair it with the q search on GET /conversations to collect the ids first.
Call GET /conversations with q set to 'crypto giveaway', collect the returned ids, then call POST /conversations/bulk with those ids and action set to close
Thread recaps for handoffs
When a conversation moves from one teammate to another, the new owner needs context fast. POST /conversations/{id}/summary generates or refreshes an AI recap of the thread, GET /conversations/{id}/summary returns the stored one, and the Conversation object also carries a summary written automatically on close. Follow it with PATCH /conversations/{id} to set the new assigned_user_id.
Call POST /conversations/cnv_8f2a1b/summary, then PATCH /conversations/cnv_8f2a1b with assigned_user_id set to usr_42 and tags set to ['billing']
Routing rules and canned answers
Repeat questions and predictable routing belong in configuration, not in every reply. The automation rules endpoints create rules with a name, a trigger of conversation.created or message.created, optional conditions, and actions such as add_tag, assign, set_status, or reply. The saved replies endpoints store canned answers with a shortcut, title, and body for reuse.
Call POST /automation-rules with name 'Tag pricing chats', trigger conversation.created, and actions containing one add_tag action with value 'pricing', then POST /saved-replies with shortcut 'ship', title 'Shipping times', and body describing delivery windows
27 endpoints — the muro rest api reads and answers the live chat conversations that visitors start on your muro websites, and triages each thread by status, tags, and assignee.
METHOD
PATH
DESCRIPTION
/conversations
List and search conversations
/conversations/{id}/messages
List messages in a conversation
/conversations/{id}/messages
Send a reply or note
/conversations/{id}
Triage a conversation
/conversations/bulk
Apply one action to many conversations
/conversations/{id}/summary
Generate or refresh the AI summary
/automation-rules
Create an automation rule
/contacts/{id}
Enrich a contact
/conversations
List and search conversations
/conversations/{id}/messages
List messages in a conversation
/conversations/{id}/messages
Send a reply or note
/conversations/{id}
Triage a conversation
/conversations/bulk
Apply one action to many conversations
/conversations/{id}/summary
Generate or refresh the AI summary
/automation-rules
Create an automation rule
/contacts/{id}
Enrich a contact
What agents get from Jentic-routed access to this vendor.
Setup
Wiring muro by hand means issuing a workspace bearer key with the right read or write scope, paging with next_cursor, and sending an Idempotency-Key on message sends so retries do not double-post. Through Jentic you install once, import the muro REST API from the API Directory, store the key once, and your agent calls it.
Permission scoping
muro puts the conversation id in the URL path (/conversations/{id}/...), so a rule can pin your agent to one conversation and the operations you pick. You choose the operations it may call, so broad ones like bulk actions or automation rule deletion are not included unless you add them.
Credential isolation
Your muro API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'reply to a live chat conversation' or 'close conversations in bulk', and Jentic returns the matching muro operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using muro REST API through Jentic.
Is there a muro MCP server?
You don't need an MCP server to give your agent the muro REST API. Jentic connects it directly from the API Directory: import it, store your workspace API key once, and your agent calls it. Operations are discovered on demand, so no extra tool definitions sit in the agent's context.
What authentication does the muro REST API use?
Per its OpenAPI spec, the muro REST API authenticates with a workspace API key sent as a bearer token, Authorization: Bearer mr_live_..., and keys carry read or write scope. GET /openapi.json is open and needs no key. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at call time, so it never enters the agent's context.
Can I limit what my agent is allowed to do with the muro REST API?
Yes. For example, write a rule that allows only GET /conversations, GET /conversations/{id}/messages, and POST /conversations/{id}/messages. Your agent can then read the inbox and post replies or notes, but it cannot bulk-close threads, edit automation rules, or change contacts, and every call it makes is logged.
What are the rate limits for the muro REST API?
The OpenAPI spec declares a limit of 120 requests per 60 seconds per API key. Responses carry RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers, so an agent can slow down before it hits the ceiling.
How do I reply to a chat conversation through Jentic?
Search Jentic for 'reply to a live chat conversation', load the createMessage operation, and call POST /conversations/{id}/messages with content set to your reply. Set kind to note to leave an internal note instead of a visible reply. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I close or assign many conversations at once with the muro REST API?
Yes. POST /conversations/bulk takes up to 100 conversation ids and one action: close, open, snooze, read, unread, or assign. For assign, pass assigned_user_id in the same body.
Are message sends and bulk actions in the muro REST API safe to retry?
POST /conversations, POST /conversations/{id}/messages, and POST /conversations/bulk accept an Idempotency-Key header. An identical retry with the same key replays the first response instead of acting twice, and the spec says keys are retained for about 24 hours.
For Agents
Read and reply to muro live chat conversations, triage threads by status, tags, and assignee, run bulk actions, manage saved replies and automation rules, and enrich visitor contacts.
Use for: I need to answer every open chat conversation that mentions a refund, List all snoozed conversations so I can follow up on them, Close the 40 spam threads that came in overnight in one call, Retrieve the messages in a conversation since yesterday morning
Not supported: Does not handle email ticketing, phone support, or outbound marketing campaigns, and it does not install the chat widget. Use for reading, answering, and triaging muro live chat conversations only.
The muro REST API reads and answers the live chat conversations that visitors start on your muro websites, and triages each thread by status, tags, and assignee. It lists conversations with a status filter and a free-text search over names, emails, and message text, sends agent replies or internal notes into a thread, and applies one action such as close, snooze, or assign to up to 100 conversations at once. It also manages saved replies and automation rules that fire on conversation.created or message.created, enriches contact records with a name, email, and metadata, and generates an AI summary of a thread on request. Requests use a workspace API key with read or write scope, lists page with an opaque next_cursor, and opening a conversation, sending a message, and bulk actions accept an Idempotency-Key header for safe retries.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>