Analyxa Cloud API
Transform AI agent conversations into structured intelligence. Analyze sentiment, extract topics, detect escalation risk, and more — via a simple REST API.
Overview
Analyxa Cloud transforms AI agent conversations into structured, multi-dimensional intelligence via a REST API.
Upload a conversation between a customer and an AI agent. Get back structured fields: sentiment, topics, resolution status, escalation risk, and dozens more — extracted by LLM in seconds.
Base URL: https://analyxa.ai
Authentication: JWT Bearer token or API key
Content-Type: application/json for all requests
Rate Limits: 10-300 req/min depending on plan
Interactive docs: Swagger UI | ReDoc
Quick Start
Get your first analysis in 3 steps:
Step 1: Create an account
Step 2: Get your API key
Step 3: Analyze a conversation
The whole process takes under 2 minutes.
/auth/registerNoneCreate your account
Request Body
{
"email": "you@company.com",
"password": "your_password",
"name": "Your Name"
}Response
{
"id": "uuid",
"email": "you@company.com",
"name": "Your Name",
"plan": "community"
}curl -X POST https://analyxa.ai/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"you@company.com","password":"your_password","name":"Your Name"}'/auth/api-keysJWT BearerCreate an API key (requires JWT from login first)
Request Body
{ "name": "My Production Key" }Response
{
"id": "uuid",
"name": "My Production Key",
"key": "ak_a1b2c3d4e5f6..."
}# First, login to get JWT
TOKEN=$(curl -s -X POST https://analyxa.ai/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@company.com","password":"your_password"}' | jq -r '.access_token')
# Then create API key
curl -X POST https://analyxa.ai/auth/api-keys \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"My Production Key"}'/api/v1/analyzeAPI KeyAnalyze your first conversation
Parameters
conversationstringrequiredFull conversation text between customer and agentschema_namestringSchema to apply (universal, support, sales, coaching). Default: universalagent_idstringAgent identifier (email, ID, username)agent_namestringAgent display namecustomer_idstringCustomer identifiercustomer_namestringCustomer display namechannelstringSource channel (api, intercom, zendesk, whatsapp, slack)providerstringLLM provider: 'anthropic' (default) or 'openai'modelstringSpecific model (e.g. 'claude-sonnet-4-20250514', 'gpt-4o'). Defaults to provider default.contextobjectAdditional context passed to the LLM prompt for business-specific enrichmentRequest Body
{
"conversation": "Customer: My order #12345 hasn't arrived.\nAgent: I'm sorry about that. Let me check the status.\nCustomer: It's been 5 days!\nAgent: I see there was a shipping delay. I'll expedite a replacement right away.",
"schema_name": "support",
"provider": "anthropic",
"context": {"industry": "e-commerce", "tier": "premium"}
}Response
{
"analysis_id": "uuid",
"schema_name": "support",
"fields": {
"sentiment": "negative",
"resolution_status": "resolved",
"issue_type": "shipping",
"escalation_risk": "low",
"summary": "Customer reported delayed order..."
},
"tokens_used": 850,
"analysis_model": "claude-sonnet-4-20250514",
"conversation_units": 1,
"quota_remaining": 4999
}curl -X POST https://analyxa.ai/api/v1/analyze \
-H "X-API-Key: ak_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"conversation": "Customer: My order hasnt arrived.\nAgent: Let me check that for you.",
"schema_name": "support"
}'Authentication
Two authentication methods are supported:
API Key (recommended for integration):
Include your key in the X-API-Key header. Keys start with ak_ and are shown once at creation.
JWT Bearer (for interactive use):
Login to get a token (valid 24 hours). Include in the Authorization: Bearer header.
Both methods resolve to the same user identity and permissions.
Schemas
Schemas define which fields the AI extracts from a conversation. Four schemas are available:
universal (10 fields) — Works with any conversation type. Includes: sentiment, summary, topics, language, and more.
support (16 fields) — For customer support tickets. Adds: issue_type, resolution_status, escalation_risk, response_quality, first_contact_resolution, and more.
sales (16 fields) — For sales pipeline conversations. Adds: buying_signals, objections, deal_stage, competitor_mentions, and more.
coaching (18 fields) — For agent performance evaluation. Adds: empathy_score, communication_clarity, protocol_adherence, improvement_areas, and more.
Support, Sales, and Coaching inherit all 10 Universal fields plus their own specialized fields.
/api/v1/schemasNone (public)List all available schemas
Response
[
{"name": "universal", "field_count": 10, "description": "..."},
{"name": "support", "field_count": 16, "description": "..."},
{"name": "sales", "field_count": 16, "description": "..."},
{"name": "coaching", "field_count": 18, "description": "..."}
]curl https://analyxa.ai/api/v1/schemasSemantic Search
Search your analysis history by meaning, not keywords. Send a text query and get the most semantically similar analyses back, ordered by similarity score.
This is the platform's differentiator: "Show me conversations similar to this complaint" or "Find analyses that resemble this successful sale."
Requirements: Team plan or higher. Community plan returns 403.
The query text is converted to a 1,536-dimensional embedding (OpenAI text-embedding-3-small) and compared against stored analysis vectors using cosine similarity.
/api/v1/searchAPI Key or JWT (Team+ only)Search analyses by semantic similarity
Parameters
querystringrequiredSearch text (min 3 chars)schema_namestringFilter by schemalimitintMax results (1-50, default 10)score_thresholdfloatMin similarity (0-1, default 0.25)curl -X POST https://analyxa.ai/api/v1/search \
-H "X-API-Key: ak_your_key_here" \
-H "Content-Type: application/json" \
-d '{"query": "angry customer about billing", "schema_name": "support", "limit": 5}'Usage & Billing
Monitor your API usage and manage your subscription programmatically.
Quota headers: Every POST /api/v1/analyze response includes:
- X-Quota-Limit: Monthly limit (or "unlimited")
- X-Quota-Used: Analyses this month
- X-Quota-Remaining: Remaining (or "unlimited")
Plans:
| Plan | Price | Conversations/mo | Schemas | Search |
|---|---|---|---|---|
| Community | $0 | 100 | Universal | No |
| Team | $79/mo | 5,000 | All | Yes |
| Business | $249/mo | 50,000 | All + custom | Yes |
| Scale | Custom | Custom | All + custom | Yes |
Upgrade via dashboard or POST /api/v1/billing/checkout?plan=team.
/api/v1/accountAPI Key or JWTGet your account info, plan, and usage
curl https://analyxa.ai/api/v1/account \
-H "X-API-Key: ak_your_key_here"How Billing Works
### Conversation Units
Each analysis counts as one or more "conversation units" against your monthly quota.
- Standard (1 unit): Conversations within your plan's standard token threshold
- Large (2 units): Conversations exceeding the standard threshold
- Extra Large (3 units): Conversations exceeding the large threshold
Token thresholds vary by plan:
| Plan | Standard (1×) | Large (2×) | Extra Large (3×) | Max |
|---|---|---|---|---|
| Community | ≤4,000 | 4,001–8,000 | N/A (blocked) | 8,000 |
| Team | ≤8,000 | 8,001–16,000 | >16,000 | No limit |
| Business | ≤16,000 | 16,001–32,000 | >32,000 | No limit |
| Scale | ≤32,000 | 32,001–64,000 | >64,000 | No limit |
### How Tokens Are Counted
A "token" is roughly 4 characters or 0.75 words. A typical 10-message support chat is ~500 tokens (1 unit). A 200-message Slack thread might be ~15,000 tokens (2 units).
Token counting happens after analysis. You're never charged before the analysis completes.
### Grace Period
If an analysis pushes your usage over the monthly limit, the analysis is saved — you never lose work. The next analysis attempt will be blocked until the new month or an upgrade.
### Quota Alerts
You'll receive email alerts at 80% and 95% usage. Your dashboard also shows a visual breakdown of standard vs. large conversations.
### API ResponsePOST /api/v1/analyze returns conversation_units and quota_remaining:
{
"analysis_id": "...",
"conversation_units": 2,
"tokens_used": 12500,
"quota_remaining": 1153
}
### Integration Conversations
Conversations from integrations (Slack, WhatsApp, HubSpot, etc.) follow the same billing rules. Session aggregation groups messages before analysis — you're billed per analyzed session, not per message.
Error Reference
All errors return JSON with a detail field:
{ "detail": "Description of what went wrong" }
HTTP Status Codes:
| Code | Meaning | Common causes |
|---|---|---|
| 200 | Success | Request processed correctly |
| 400 | Bad Request | Invalid parameters, missing fields |
| 401 | Unauthorized | Missing or invalid JWT/API key |
| 403 | Forbidden | Quota exceeded, schema restricted, search restricted |
| 404 | Not Found | Analysis or schema not found |
| 422 | Validation Error | Field-level validation (type, length, format) |
| 429 | Rate Limited | Too many requests. Retry-After header included |
| 500 | Internal Error | Server error. Retry or contact support |
403 messages include upgrade suggestions when the action requires a higher plan.
Analyxa Cloud — analyxa.ai
Need help? Contact support@analyxa.ai