canonical: https://jentic.com/apis/moda.dev/moda

# Moda Data API

The Moda Data API gives tenant-scoped access to the production traces of your AI agents and the signals Moda derives from them. You can search traces by text, cluster, user, environment, and outcome, run keyword, semantic, or hybrid search over messages, and open a trace's context, step scores, and world-state replay. Moda surfaces frustration, emotion, hallucination, and tool-failure detections, ranks recurring problems with their evidence and investigation reports, and tracks custom signals you label. Almost every operation is a read; the few writes record problem lifecycle feedback, custom-signal labels, and CLI feedback and telemetry.

## For AI agents

Search and analyse your AI agent's production traces with Moda: topic clusters, hallucination, frustration, and tool-failure detections, ranked problems with evidence, and world-state replays. Authenticated with an x-api-key header.

## Scope

Does not ingest new traces, run LLM prompts, or manage model deployments. Use for reading and triaging the AI agent trace analytics Moda has already collected only.

## Capabilities

- Search agent traces by text, cluster, user, environment, and positive or negative outcome
- Run keyword, semantic, or hybrid search over message content and open the surrounding trace context
- List hallucination detections filtered by contradicted or verified kind
- Break down tool failures by tool name and failure subtype with examples
- Review ranked problems with their evidence, affected traces, and investigation reports
- Mark a problem fixed, dismiss it, or rename it through lifecycle feedback
- Replay a trace's world state or fetch a snapshot at a specific message index

## Use cases

### Agent Self-Review Through Jentic

A coding agent working on your production agent pulls the ranked problems Moda has found, opens the evidence and affected traces for the top one, and drafts a fix. Through Jentic the agent finds the problem and trace operations by intent and calls them with a stored x-api-key, then records mark_fixed feedback on the problem once the change ships.

Example prompt: List problems from the last 7 days, fetch the evidence for the top-ranked problem id, then submit feedback with action 'mark_fixed' and a reason

### Hallucination and Tool-Failure Monitoring

Teams running LLM agents in production check hallucination detections by kind, contradicted or verified, and drill into tool failures by toolName and subtype to see which integrations break and how. Frustration and emotion detections show where users push back, filterable by user_id or conversation_id.

Example prompt: Get hallucination detections with kind 'contradicted' for the last 30 days and tool-failure detail for the tool 'search_orders'

### Trace Search and Debugging

Developers debugging a bad answer search messages with hybrid retrieval, open the returned anchor's context window, and read the trace's step scores and world-state snapshot at the message where it went wrong. Topic clusters group traces by what users asked about, so a whole category of conversations can be reviewed together.

Example prompt: Search messages for 'cancel my subscription' in hybrid mode over the last 7d, then fetch the context for the first result's conversationId

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/data/overview` | Get analytics overview |
| GET | `/api/v1/data/conversations` | Search traces |
| GET | `/api/v1/data/search` | Search message anchors |
| GET | `/api/v1/data/problems` | List ranked problems |
| GET | `/api/v1/data/problems/{id}/evidence` | List problem evidence |
| GET | `/api/v1/data/hallucinations` | Get hallucination detections |
| GET | `/api/v1/data/tool-failures/{toolName}` | Get tool-failure detail |
| POST | `/api/v1/data/problems/{id}/feedback` | Submit problem feedback |

## Key resources

- **Traces** — Agent conversations with context, step scores, custom signals, and world-state replay
- **Clusters** — Topic and task clusters that group traces
- **Detections** — Frustration, emotion, hallucination, and tool-failure signals
- **Problems** — Ranked recurring issues with evidence, traces, reports, and feedback history
- **Custom Signals** — User-defined signals with detections and labelled examples

## AI readiness

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.

- **Score:** 64 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 99 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 49 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 60 / 100
- **View full report:** https://jentic.com/apis/moda.dev/moda/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Moda Data API by hand means setting the x-api-key header, learning which of its list operations page by offset and which by cursor, and chaining trace ids between search, context, and world-state calls. Through Jentic you install once, import Moda from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Moda puts the problem id, conversationId, and toolName in the URL path, so a rule can pin your agent to one problem or one trace and the operations you pick. You choose the operations it may call, so the write operations like problem feedback and custom-signal labels are not included unless you add them.
- **Credential handling:** Your Moda 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.
- **Discovery method:** Agents search Jentic by intent such as 'find hallucinations in my agent traces' or 'list my agent's top problems', and Jentic returns the matching Moda operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **Helicone** — LLM request logging, cost tracking, and observability
- **Braintrust** — LLM evaluation, logging, and prompt experiments
- **Arize** — ML and LLM observability and evaluation
- **Sentry** — Application error tracking and performance monitoring

## FAQ

### What authentication does the Moda Data API use?

The Moda Data API authenticates with an API key sent in the `x-api-key` header per its OpenAPI spec, declared globally for every operation, and access is scoped to your tenant. Through Jentic the key is stored once, encrypted, by your own Jentic One instance and injected at call time, so it never enters the agent's prompt or logs.

### Can I search my agent's traces semantically with the Moda Data API?

Yes. The message search operation takes a q query and a mode of keyword, semantic, or hybrid, with hybrid as the default, plus user_id and time_range filters. It returns anchors you pass to the trace context operation with msg_index to read the surrounding messages.

### Can I limit what my agent is allowed to do with the Moda API?

Yes. For example, write a rule that allows only GET requests under `/api/v1/data`, so the agent can search traces and read problems and detections but cannot submit problem feedback or label custom signals, and every call it makes is logged.

### What are the rate limits for the Moda Data API?

The OpenAPI spec does not specify rate limits. Check the Moda documentation at https://moda.dev for current limits; list operations page with limit plus offset or cursor, and several cap limit at 20 or 100 per call.

### How do I find my agent's top problems with Moda through Jentic?

Search Jentic for the intent 'list my agent's top problems', which returns the Moda problems operation on `/api/v1/data/problems` with its input schema; the agent sets days_back and limit, then follows each problem id to its evidence and traces. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a Moda MCP server?

You don't need an MCP server to give your agent the Moda Data API. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls the trace, detection, and problem operations. Operations are discovered on demand, so no extra tool definitions are loaded into the agent's context.
