Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Myla Developer 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%2Fmyla.cx%2Fmyla" | 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%2Fmyla.cx%2Fmyla" | 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 Myla Developer API.
Upsert a contact by phone or email so an existing match is updated instead of duplicated
Update a contact's name, lifecycleStageId, and customFields values
Add tags to a contact by passing tagIds
Look up contacts by email or phone and page through the full contact list
Read a conversation with its channel, status, priority, awaitingReply flag, and messages
GET STARTED
Subscribe a target URL to message.received, conversation.opened, or conversation.closed events, and unsubscribe later
Patterns agents use Myla Developer API for, with concrete tasks.
★ Agent-maintained contact records through Jentic
A developer's agent connected through Jentic keeps Myla contacts in sync with another system. It upserts each contact by email or phone, so a match is updated rather than duplicated, sets the lifecycleStageId as the customer moves on, and fills customFields with fieldId and value pairs. The workspace stays current without manual imports.
Call POST /api/v1/contacts with email='jo@example.com', name='Jo Park', and lifecycleStageId='stage_123', then POST /api/v1/contacts/{id}/tags with tagIds set to the VIP tag id using the returned id
Conversation summaries for follow-up
A support lead wants a daily digest of open threads. An agent lists conversations, fetches each one with its messages, and checks status and awaitingReply to pick out threads still waiting on the team. It returns a short summary per thread with the customer name and channel.
Call GET /api/v1/conversations with limit=25, then GET /api/v1/conversations/{id} for each one and report the threads where awaitingReply is true
Real-time event triggers
When a downstream workflow needs to react to customer messages, a webhook subscription posts to a public HTTPS target URL each time message.received, conversation.opened, or conversation.closed fires. Deliveries are HMAC-signed, so the receiver can check they came from Myla. The same mechanism backs Myla's Zapier REST Hook triggers.
Call POST /api/v1/webhooks with event='conversation.closed' and targetUrl='https://hooks.example.com/myla', and store the returned id so DELETE /api/v1/webhooks/{id} can remove it later
10 endpoints — the myla developer api reads and updates the contacts and conversations in a myla brand workspace and registers webhooks for conversation events.
METHOD
PATH
DESCRIPTION
/api/v1/contacts
Create or update a contact
/api/v1/contacts
List contacts, filterable by email or phone
/api/v1/contacts/{id}
Update a contact
/api/v1/contacts/{id}/tags
Add tags to a contact
/api/v1/conversations/{id}
Get a conversation with messages
/api/v1/webhooks
Subscribe to an event
/api/v1/me
Verify credentials
/api/v1/contacts
Create or update a contact
/api/v1/contacts
List contacts, filterable by email or phone
/api/v1/contacts/{id}
Update a contact
/api/v1/contacts/{id}/tags
Add tags to a contact
/api/v1/conversations/{id}
Get a conversation with messages
/api/v1/webhooks
Subscribe to an event
/api/v1/me
Verify credentials
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Myla by hand means creating a brand-scoped key in the dashboard, sending it as a bearer token, unwrapping the data envelope on every response, and backing off on 429s. Through Jentic you install once, import Myla from the API Directory, store the key once, and your agent calls it.
Permission scoping
Myla puts contact and conversation ids in the URL path, as in /api/v1/contacts/{id} and /api/v1/conversations/{id}, so a rule can hold your agent to the operations it needs and to specific records. You choose the operations it may call, so webhook registration or deletion is not included unless you add it.
Credential isolation
Your Myla 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 'upsert a contact' or 'read a conversation', and Jentic returns the matching Myla 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 Myla Developer API through Jentic.
What authentication does the Myla Developer API use?
Per its OpenAPI spec, the Myla Developer API uses a bearer token: a brand-scoped API key sent as Authorization: Bearer. You create the key in the Myla dashboard under Settings, Integrations, Developer API, and each key works for a single brand workspace. GET /api/v1/me confirms a key is valid. Through Jentic, the key is stored once by your own Jentic One instance and injected at call time.
Does creating a contact in Myla create duplicates?
No. POST /api/v1/contacts upserts by phone or email, and at least one of the two is required. If an existing contact matches, it is updated; otherwise a new one is created. Use PATCH /api/v1/contacts/{id} when you already have the contact id.
Which webhook events does the Myla Developer API support?
POST /api/v1/webhooks takes an event and a targetUrl. The event enum is message.received, conversation.opened, and conversation.closed, and the target must be a public HTTPS URL. Deliveries are HMAC-signed. Remove a subscription with DELETE /api/v1/webhooks/{id}.
What are the rate limits for the Myla Developer API?
The spec says requests are rate limited per API key and that exceeding the limit returns HTTP 429, after which you retry after a short delay. It does not state the numeric limit; see https://api.myla.cx/openapi.json and the Myla dashboard documentation for current figures.
How do I tag a Myla contact through Jentic?
Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import the Myla Developer API from the API Directory, and store your brand API key once. Your agent searches for 'tag a contact in Myla', finds the contact with GET /api/v1/contacts filtered by email, then calls POST /api/v1/contacts/{id}/tags with tagIds. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I limit what my agent is allowed to do with the Myla Developer API?
Yes. For a read-only digest agent, write a rule that allows GET /api/v1/conversations and GET /api/v1/conversations/{id}, so it can read threads and messages but cannot edit contacts or register webhooks. A rule can also name a single conversation id in the path if the agent should only read one thread.
For Agents
Upsert, update, and tag Myla contacts, read conversations with their messages, and subscribe to message and conversation events in one brand workspace.
Use for: Find the Myla contact with this email address, Add a new lead to Myla from a form submission, Tag a contact as a VIP customer, Move a contact to a new lifecycle stage
Not supported: Does not send outbound messages, reply to conversations, or manage tags and lifecycle stage definitions. Use for Myla contact records, conversation reads, and event webhooks only.
The Myla Developer API reads and updates the contacts and conversations in a Myla brand workspace and registers webhooks for conversation events. Contacts can be listed and filtered by email or phone, upserted by phone or email, patched with a lifecycle stage and custom fields, and tagged. Conversations come back with their channel, status, priority, and full message history. Webhook subscriptions fire HMAC-signed deliveries when a message is received or a conversation opens or closes.
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>