canonical: https://jentic.com/apis/latitude.so/latitude

# Latitude So Latitude

The Latitude API exposes Latitude's open-source AI agent monitoring platform: it lists and inspects the traces, spans, and sessions your agents produce, breaks down tool-call usage, errors, and parameters, and tracks end users and memory stores the agent touched. Signals flag recurring failure patterns through an LLM judge or a deterministic rule, and can be resolved, ignored, muted, or monitored, while monitors raise incidents when something breaks. Teams also score and annotate traces, build datasets from traces, compare session populations in experiments, run analytics queries, and read an Agent Score with its causes and history.

## For AI agents

Query an AI agent's production traces, tool calls, sessions, and memory in Latitude, triage the failure signals and incidents it raises, and score, annotate, or turn traces into datasets.

## Scope

Does not handle running LLM inference, hosting the agent itself, or general application error tracking outside agent traces. Use for monitoring, triaging, and evaluating AI agent behaviour recorded in Latitude only.

## Capabilities

- List and filter project traces, read a trace with its spans, annotations, and memory changes, and export traces asynchronously
- Break down tool-call usage with histograms, parameter stats, co-occurring tools, error breakdowns, and recent calls per toolName
- Create signals backed by a judge LLM detector or a deterministic rule, then resolve, ignore, mute, or monitor them and read their trend and traces
- Create monitors, list the incidents they raise, mute them, and resolve incidents
- Score a trace by id or by filters and add, update, or delete annotations on a project
- Build datasets by importing rows from traces by id or filter set, and manage their columns and rows
- Read the project's Agent Score, its causes, and its history over a from and to range

## Use cases

### Debugging a Failing Agent Tool

When a production agent starts misbehaving, a debugging agent pulls the project's tools with usage metrics, reads the error breakdown and recent errorsOnly calls for the suspect toolName, and opens the traces and spans behind them. Parameter stats and co-occurrence data show which inputs and neighbouring tools are involved, so the root cause is found from real calls rather than guesses.

Example prompt: Call GET `/v1/projects/{projectSlug}/tools/{toolName}/errors` for toolName 'search_orders' with fromIso and toIso for the last 24 hours, then GET `/v1/projects/{projectSlug}/tools/{toolName}/calls` with errorsOnly true and open the first trace's spans

### Signal and Incident Triage

Latitude groups recurring problems into signals and raises incidents from monitors. A triage agent lists active signals sorted by recency, reads each signal's trend and example traces, resolves those fixed in the latest release, mutes noisy ones, and resolves incidents once the underlying signal is handled.

Example prompt: Call GET `/v1/projects/{projectSlug}/signals` with lifecycleGroup 'active', read GET `/v1/projects/{projectSlug}/signals/{signalSlug}/trend` for each, then POST `/v1/projects/{projectSlug}/signals/resolve` for the ones fixed

### Building Regression Datasets from Production

Failures seen in production become test cases. The agent creates a dataset, imports rows from the failing traces by explicit ids or a filter set, and adds or reorders columns, giving the team a reusable set of real failure cases to check a prompt or model change against. Saved searches keep the trace filters reusable.

Example prompt: Call POST `/v1/projects/{projectSlug}/datasets` to create 'refund-failures', then POST `/v1/projects/{projectSlug}/datasets/{datasetSlug}/rows/import/traces` with traces set to the failing trace ids, then GET `/v1/projects/{projectSlug}/datasets/{datasetSlug}/rows` to confirm the import

### AI Agent Self-Monitoring via Jentic

A coding or operations agent reads Latitude through Jentic without holding the organization-scoped key. It searches by intent, receives the trace, signal, or Agent Score operation with its input schema, and executes with the bearer key injected at run time, so checking production health is one step in its own release workflow.

Example prompt: Search Jentic for 'get the agent score for a project', load the GET `/v1/projects/{projectSlug}/agent-score` schema, and execute it, then call the causes operation for the same projectSlug

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/projects/{projectSlug}/traces/list` | List project traces |
| GET | `/v1/projects/{projectSlug}/traces/{traceId}/spans` | List trace spans |
| GET | `/v1/projects/{projectSlug}/tools/{toolName}/errors` | Get tool error breakdown |
| GET | `/v1/projects/{projectSlug}/signals` | List project signals |
| POST | `/v1/projects/{projectSlug}/signals/resolve` | Resolve signals |
| POST | `/v1/projects/{projectSlug}/monitors` | Create monitor |
| POST | `/v1/projects/{projectSlug}/scores` | Create project score |
| GET | `/v1/projects/{projectSlug}/agent-score` | Get Agent Score |

## Key resources

- **Traces and spans** — List, read, query, and export traces with their spans, annotations, and memory changes
- **Tools** — Tool-call usage metrics, histograms, parameter stats, errors, and recent calls
- **Signals and incidents** — Create and triage failure signals and resolve incidents
- **Monitors** — Create, update, mute, and list incidents for monitors
- **Datasets and experiments** — Build datasets from traces, manage rows and columns, and compare session populations with experiment variants
- **Sessions, users, and memory** — Inspect sessions, end-user activity, and memory store snapshots and diffs
- **Projects, members, and keys** — Manage projects, organization members, API keys, and OAuth keys

## 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:** 51 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 36 / 100
  - Developer Experience & Jentic Compatibility: 39 / 100
  - AI-Readiness & Agent Experience: 55 / 100
  - Agent Usability: 72 / 100
  - Security: 60 / 100
  - AI Discoverability: 84 / 100
- **View full report:** https://jentic.com/apis/latitude.so/latitude/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 Latitude by hand means attaching an organization-scoped bearer key, resolving project slugs, and paging through cursor-based trace, signal, and dataset lists. Through Jentic you install once, import Latitude from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Latitude puts the project slug in the URL path (`/v1/projects/{projectSlug}/...`), so a rule can pin your agent to one project and the operations you pick. You choose that set, so destructive ones like project deletion or API key revocation are not included unless you add them.
- **Credential handling:** Your Latitude 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.
- **Discovery method:** Agents search Jentic by intent such as 'find failing tool calls' or 'list open signals', and Jentic returns the matching Latitude operation with its input schema so the agent calls the right endpoint among Latitude's operations without browsing the reference docs.

## Related APIs

- **Langfuse API** — Open-source LLM tracing, evaluation, and prompt management
- **Helicone API** — LLM request logging and cost analytics
- **Braintrust API** — Evaluations, datasets, and experiment tracking for AI apps
- **Sentry API** — Application error and performance monitoring

## FAQ

### What authentication does the Latitude API use?

Per its OpenAPI spec, the Latitude API uses the ApiKeyAuth scheme: an organization-scoped API key sent as Authorization: Bearer. The health check, the OAuth protected resource metadata, and the temporary account bootstrap endpoint need no key. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at execution time.

### Can I see which agent tools are failing with the Latitude API?

Yes. The tools operations list each tool with usage metrics and, per toolName, return an error breakdown, a histogram that can be limited with errorsOnly, parameter stats, co-occurring tools, and recent calls. All accept fromIso and toIso to set the time window.

### What are the rate limits for the Latitude API?

The OpenAPI spec does not specify rate limits. Check https://docs.latitude.so for current limits.

### How do I triage signals through Jentic with the Latitude API?

Search Jentic for 'list open signals for a project' and it returns the signals list operation with its input schema. Execute GET `/v1/projects/{projectSlug}/signals`, then call the resolve, ignore, or mute operations for the signals you handle. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a Latitude MCP server?

You don't need an MCP server to give your agent the Latitude API. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it. Operations are discovered by intent on demand, so the agent does not carry tool definitions for all of Latitude's operations in its context.

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

Yes. Write a rule that allows only the GET trace, tool, and signal reads under one projectSlug, and the agent can investigate that project's production failures while it cannot delete datasets, revoke API keys, or remove members. Every call runs through your own instance and is logged.
