---
title: "Public API"
description: "Read-only HTTP API for accessing AgentOps trace and span data"
---
# Public API
The AgentOps Public API provides read-only HTTP access to your monitoring data. This RESTful API allows you to retrieve trace information, span details, and metrics from any application or framework, regardless of programming language.
This is a **read-only API** for accessing existing data. To create traces and spans, use the [AgentOps SDK](/v2/quickstart) or our instrumentation libraries.
## Base URL
All API requests should be made to:
```
https://api.agentops.ai
```
## Authentication
The API uses JWT token authentication. You'll need to exchange your API key for a JWT token first.
### Get Access Token
Convert your API key to a bearer token for API access.
```bash curl
curl -X POST https://api.agentops.ai/public/v1/auth/access_token \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY"
}'
```
```json Response
{
"bearer": "eyJhbGciOiJIUzI1NiIs..."
}
```
```json Error Response
{
"detail": [
{
"loc": ["body", "api_key"],
"msg": "field required",
"type": "value_error.missing"
}
]
}
```
**Important**: Bearer tokens are valid for **30 days**. Store them securely and refresh before expiration.
## Core Endpoints
### Get Project Information
Retrieve details about your current project.
```bash curl
curl -X GET https://api.agentops.ai/public/v1/project \
-H "Authorization: Bearer YOUR_BEARER_TOKEN"
```
```json Response
{
"id": "proj_abc123",
"name": "My AI Project",
"environment": "production"
}
```
This endpoint returns information about the project associated with your API key.
### Get Trace Details
Retrieve comprehensive information about a specific trace, including all its spans.
```bash curl
curl -X GET https://api.agentops.ai/public/v1/traces/trace_123 \
-H "Authorization: Bearer YOUR_BEARER_TOKEN"
```
```json Response
{
"trace_id": "trace_123",
"project_id": "proj_abc123",
"tags": ["production", "chatbot", "gpt-4"],
"spans": [
{
"span_id": "span_456",
"parent_span_id": null,
"span_name": "User Query Processing",
"span_kind": "SPAN_KIND_INTERNAL",
"start_time": "2024-03-14T12:00:00.000Z",
"end_time": "2024-03-14T12:00:05.000Z",
"duration": 5000,
"status_code": "STATUS_CODE_OK",
"status_message": "Success"
},
{
"span_id": "span_789",
"parent_span_id": "span_456",
"span_name": "OpenAI GPT-4 Call",
"span_kind": "SPAN_KIND_CLIENT",
"start_time": "2024-03-14T12:00:01.000Z",
"end_time": "2024-03-14T12:00:03.000Z",
"duration": 2000,
"status_code": "STATUS_CODE_OK",
"status_message": "Success"
}
]
}
```
```json Error Response
{
"detail": [
{
"loc": ["path", "trace_id"],
"msg": "trace not found",
"type": "value_error.not_found"
}
]
}
```
**Parameters:**
- `trace_id` (path, required): The unique identifier of the trace
**Response Fields:**
- `trace_id`: Unique trace identifier
- `project_id`: Associated project ID
- `tags`: Array of tags associated with the trace
- `spans`: Array of span summaries within the trace
### Get Trace Metrics
Retrieve aggregated metrics and statistics for a trace.
```bash curl
curl -X GET https://api.agentops.ai/public/v1/traces/trace_123/metrics \
-H "Authorization: Bearer YOUR_BEARER_TOKEN"
```
```json Response
{
"span_count": 5,
"trace_count": 1,
"success_count": 4,
"fail_count": 1,
"indeterminate_count": 0,
"prompt_tokens": 150,
"completion_tokens": 75,
"cache_read_input_tokens": 0,
"reasoning_tokens": 25,
"total_tokens": 250,
"prompt_cost": "0.0030",
"completion_cost": "0.0015",
"average_cost_per_trace": "0.0045",
"total_cost": "0.0045"
}
```
**Metrics Explained:**
- `span_count`: Total number of spans in the trace
- `success_count`/`fail_count`/`indeterminate_count`: Status breakdown
- `*_tokens`: Token usage breakdown by type
- `*_cost`: Cost calculations in USD
### Get Span Details
Retrieve comprehensive information about a specific span, including full attribute payloads.
```bash curl
curl -X GET https://api.agentops.ai/public/v1/spans/span_456 \
-H "Authorization: Bearer YOUR_BEARER_TOKEN"
```
```json Response
{
"span_id": "span_456",
"parent_span_id": null,
"span_name": "User Query Processing",
"span_kind": "SPAN_KIND_INTERNAL",
"service_name": "chatbot-service",
"start_time": "2024-03-14T12:00:00.000Z",
"end_time": "2024-03-14T12:00:05.000Z",
"duration": 5000,
"status_code": "STATUS_CODE_OK",
"status_message": "Success",
"attributes": {
"llm.model": "gpt-4-turbo",
"llm.prompt": "What is the weather like today?",
"llm.completion": "I need your location to provide weather information.",
"llm.usage.prompt_tokens": 50,
"llm.usage.completion_tokens": 25
},
"resource_attributes": {
"service.name": "chatbot-service",
"service.version": "1.2.3"
},
"span_attributes": {
"user_id": "user_123",
"session_id": "session_456"
}
}
```
**Parameters:**
- `span_id` (path, required): The unique identifier of the span
**Response Fields:**
- `attributes`: Core span data (LLM calls, tool usage, etc.)
- `resource_attributes`: Service and infrastructure metadata
- `span_attributes`: Custom attributes set by your application
### Get Span Metrics
Retrieve detailed metrics for a specific span.
```bash curl
curl -X GET https://api.agentops.ai/public/v1/spans/span_456/metrics \
-H "Authorization: Bearer YOUR_BEARER_TOKEN"
```
```json Response
{
"total_tokens": 75,
"prompt_tokens": 50,
"completion_tokens": 25,
"cache_read_input_tokens": 0,
"reasoning_tokens": 0,
"success_tokens": 75,
"fail_tokens": 0,
"indeterminate_tokens": 0,
"prompt_cost": "0.0015",
"completion_cost": "0.0005",
"total_cost": "0.0020"
}
```
## MCP Server
AgentOps provides a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that exposes the Public API as tools for AI assistants. This allows AI models to directly query your AgentOps data during conversations.
### Configuration
Create an MCP server configuration file (typically `mcp_config.json`):
**Python-based configuration:**
```json
{
"mcpServers": {
"agentops": {
"command": "python",
"args": ["-m", "agentops.mcp.server"],
"env": {
"AGENTOPS_API_KEY": "your-api-key-here"
}
}
}
}
```
**Docker-based configuration:**
```json
{
"mcpServers": {
"agentops": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"AGENTOPS_API_KEY",
"agentops/agentops-mcp:latest"
],
"env": {
"AGENTOPS_API_KEY": "your-agentops-api-key-here"
}
}
}
}
```
### Available Tools
The MCP server exposes the following tools that mirror the Public API endpoints:
#### `auth`
Authorize using an AgentOps project API key.
- **Parameters**: `api_key` (string) - Your AgentOps project API key
- **Usage**: The server will automatically prompt for authentication when needed
#### `get_project`
Get details about the current project.
- **Parameters**: None
- **Returns**: Project information including ID, name, and environment
#### `get_trace`
Get comprehensive trace information by ID.
- **Parameters**: `trace_id` (string) - The trace identifier
- **Returns**: Trace details with associated spans
#### `get_trace_metrics`
Get aggregated metrics for a specific trace.
- **Parameters**: `trace_id` (string) - The trace identifier
- **Returns**: Cost, token usage, and performance metrics
#### `get_span`
Get detailed span information by ID.
- **Parameters**: `span_id` (string) - The span identifier
- **Returns**: Complete span data including attributes
#### `get_span_metrics`
Get metrics for a specific span.
- **Parameters**: `span_id` (string) - The span identifier
- **Returns**: Span-specific cost and token metrics
### Environment Variables
The MCP server supports the following environment variables:
- `AGENTOPS_API_KEY`: Your AgentOps project API key
- `HOST`: API endpoint (defaults to `https://api.agentops.ai`)