Myra has a public REST API for reading and writing leads, and for reading your pipelines and client accounts. It uses JSON for all request and response bodies and standard HTTP status codes.
It is deliberately small. Only the endpoints listed below exist - anything else returns 404.
Authentication
Tokens are managed in Business → API, and only business owners and admins can see or create them. A token is shown once, at creation; store it somewhere safe.
Send it as a bearer token:
Authorization: Bearer pak_xxxxxxxxxxxxxxxxxxxx
Scopes
There are exactly two scopes:
| Scope | Allows |
|---|---|
read |
All GET requests |
write |
POST, PATCH and DELETE requests |
A token can hold one or both. You can also set an optional expiry, revoke a token, or delete it.
Tokens are scoped to your business: every request is limited to the client accounts that belong to
it. Passing a client_id from another business returns 403.
Base URL
https://myra-app.ai/api/public/v1
The same base URL is shown in-product on the Business → API page.
Endpoints
| Method | Path | Scope | Description |
|---|---|---|---|
GET |
/leads |
read |
List leads across your client accounts |
POST |
/leads |
write |
Create a lead |
GET |
/leads/{id} |
read |
Fetch a single lead |
PATCH |
/leads/{id} |
write |
Update a lead |
DELETE |
/leads/{id} |
write |
Delete a lead |
GET |
/pipelines |
read |
List pipelines with their stages |
GET |
/clients |
read |
List the client accounts in your business |
List leads
curl "https://myra-app.ai/api/public/v1/leads?limit=50&offset=0" \
-H "Authorization: Bearer pak_xxx"
Optional query parameters: client_id, stage_id, limit, offset.
{
"data": [
{
"id": "…",
"client_id": "…",
"name": "Jane Doe",
"email": "jane@example.com",
"phone": "+15551234567",
"source": "website",
"value": 1200,
"pipeline_id": "…",
"stage_id": "…",
"created_at": "2026-08-26T10:00:00Z"
}
],
"total": 134,
"limit": 50,
"offset": 0
}
Create a lead
client_id and name are required. email, phone, source, notes, value, pipeline_id,
stage_id and business_name are optional.
curl -X POST https://myra-app.ai/api/public/v1/leads \
-H "Authorization: Bearer pak_xxx" \
-H "Content-Type: application/json" \
-d '{"client_id":"…","name":"Jane Doe","email":"jane@example.com"}'
Pagination
Offset-based. Use limit (default 50, maximum 200) and offset. List responses include
total, limit and offset. There are no cursors.
Rate limits
- Reads: 600 requests per minute per token
- Writes: 60 requests per minute per token
Exceeding a limit returns 429 with a retry-after header. No X-RateLimit-* headers are sent.
Errors
Errors are a flat JSON object with a single error string:
{ "error": "client_id not in this agency" }
| Status | Meaning |
|---|---|
400 |
Invalid JSON or failed validation |
401 |
Missing, malformed, revoked or expired token |
403 |
Token lacks the required scope, or wrong client |
404 |
Record not found (or not visible to your business) |
429 |
Rate limited |
500 |
Server error |
What the API does not cover
There are no contacts, deals, conversations, messages, calendar or automation endpoints. To reach anything else, use an Automation with a Webhook step, or an automation trigger webhook - see Webhooks.
