# Overview

Complete SDK documentation and REST API reference for Fiddler AI Observability Platform.

## 🐍 Python Client SDK

### [Python Client SDK](/api/fiddler-python-client-sdk/python-client.md)

[![PyPI](https://img.shields.io/pypi/v/fiddler-client)](https://pypi.org/project/fiddler-client/)

Official Python SDK for comprehensive ML and LLM observability - monitor traditional ML models and LLM applications.

**Key Features:**

* Model onboarding and schema definition
* Production event publishing (batch and streaming)
* Baseline dataset management
* Alert configuration
* Custom metrics and segments

**Use Cases:**

* ML model monitoring (drift, performance, data quality)
* Production data ingestion
* Creating monitoring dashboards
* Configuring alerts for model issues

[**View Full Documentation →**](/api/fiddler-python-client-sdk/python-client.md)

[**View Usage Guides →**](/developers/client-library-reference/installation-and-setup.md)

***

## 🎯 Agentic AI SDKs

SDKs for monitoring, evaluating, and testing LLM applications and AI agents.

### [Fiddler Evals SDK](/api/fiddler-evals-sdk/evals.md)

[![PyPI](https://img.shields.io/pypi/v/fiddler-evals)](https://pypi.org/project/fiddler-evals/)

Evaluate and test LLM outputs with built-in and custom metrics.

**Key Features:**

* Pre-built evaluators (faithfulness, toxicity, coherence, etc.)
* Custom evaluation functions
* Experiment tracking and comparison
* Dataset management for test sets

**Use Cases:**

* LLM output quality assessment
* A/B testing prompts and models
* Regression testing for LLM changes
* Custom evaluation metrics

**Quick Start:**

```python
import fiddler as fdl

# Initialize evaluator
evaluator = fdl.AnswerRelevance()

# Run evaluation
result = evaluator.evaluate(
    question="What is Fiddler?",
    answer="Fiddler is an AI observability platform."
)
```

[**View Full Documentation →**](/api/fiddler-evals-sdk/evals.md)

***

### [Fiddler OTel SDK](/api/fiddler-otel-sdk/otel.md)

[![PyPI](https://img.shields.io/pypi/v/fiddler-otel)](https://pypi.org/project/fiddler-otel/)

Framework-agnostic OpenTelemetry-based instrumentation for any Python LLM or agent application.

**Key Features:**

* OpenTelemetry-native span emission to Fiddler
* `@trace` decorator for instrumenting custom functions
* Span attributes for LLM calls, retrievals, and tool use
* Conversation and session tracking
* Optional JSONL span capture for offline analysis

**Use Cases:**

* Custom Python agents not built on LangGraph or Strands
* Existing OTel-instrumented apps that want Fiddler as a backend
* Framework-agnostic LLM observability
* Offline span capture for debugging

**Quick Start:**

```python
from fiddler_otel import FiddlerClient, trace

# Initialize client
client = FiddlerClient(application_id="...", api_key="...", url="...")

# Instrument a function
@trace
def answer_question(q: str) -> str:
    return llm.invoke(q)
```

[**View Full Documentation →**](/api/fiddler-otel-sdk/otel.md)

***

### [Fiddler LangChain SDK](/api/fiddler-langchain-sdk/langchain.md)

[![PyPI](https://img.shields.io/pypi/v/fiddler-langchain)](https://pypi.org/project/fiddler-langchain/)

Monitor LangChain V1 (`create_agent`) applications and agents with native instrumentation.

**Key Features:**

* Automatic LangChain instrumentation
* `FiddlerAgentMiddleware` for `create_agent`-based apps
* Conversation and session tracking
* LLM context capture for prompts and responses
* Span attributes for chains, retrievals, and tool calls

**Use Cases:**

* LangChain V1 agent monitoring (`create_agent`)
* RAG pipelines built on LangChain
* Production observability for LangChain-based apps
* Debugging chain and tool-call sequences

**Quick Start:**

```python
import langchain.agents
from fiddler_otel import FiddlerClient
from fiddler_langchain import FiddlerLangChainInstrumentor

client = FiddlerClient(application_id="...", api_key="...", url="...")

# Instrument LangChain V1 BEFORE creating any agents
instrumentor = FiddlerLangChainInstrumentor(client=client)
instrumentor.instrument()

# Every agent created with create_agent() is now traced automatically
agent = langchain.agents.create_agent(
    model="openai:gpt-4o-mini", tools=[...], name="my_agent"
)
```

[**View Full Documentation →**](/api/fiddler-langchain-sdk/langchain.md)

***

### [Fiddler LangGraph SDK](/api/fiddler-langgraph-sdk/langgraph.md)

[![PyPI](https://img.shields.io/pypi/v/fiddler-langgraph)](https://pypi.org/project/fiddler-langgraph/)

Monitor LangGraph agents with distributed tracing and observability.

**Key Features:**

* Automatic LangGraph instrumentation
* Distributed tracing for agent workflows
* Span attributes for nodes and edges
* Conversation and session tracking

**Use Cases:**

* Debugging multi-step agent workflows
* Performance analysis of agent chains
* Monitoring production LangGraph applications
* Understanding agent decision paths

**Quick Start:**

```python
from fiddler_langgraph import FiddlerClient, LangGraphInstrumentor

client = FiddlerClient(application_id="...", api_key="...", url="...")

# Instrument your LangGraph app
instrumentor = LangGraphInstrumentor(client=client)
instrumentor.instrument()

# Your LangGraph code runs normally
# Traces are automatically sent to Fiddler
```

[**View Full Documentation →**](/api/fiddler-langgraph-sdk/langgraph.md)

***

### [Fiddler Strands SDK](/api/fiddler-strands-agents-sdk/strands.md)

[![PyPI](https://img.shields.io/pypi/v/fiddler-strands)](https://pypi.org/project/fiddler-strands/)

Monitor Strands Agents with native instrumentation.

> Installed as `fiddler-strands`; imported in Python as `fiddler_strandsagents`.

**Key Features:**

* Strands Agent instrumentation
* Session and conversation tracking
* Span attributes for agent actions
* Integration with Fiddler platform

**Use Cases:**

* Monitoring Strands production agents
* Debugging Strands Agent workflows
* Tracking agent performance metrics
* Session-based analysis

**Quick Start:**

```python
from strands.telemetry import StrandsTelemetry
from fiddler_strandsagents import StrandsAgentInstrumentor

telemetry = StrandsTelemetry()
telemetry.setup_otlp_exporter()

# Instrument Strands Agent
instrumentor = StrandsAgentInstrumentor(strands_telemetry=telemetry)
instrumentor.instrument()
```

[**View Full Documentation →**](/api/fiddler-strands-agents-sdk/strands.md)

***

## 🌐 REST API

### [REST API Reference](/api/rest-api/rest-api.md)

Complete HTTP API documentation for programmatic access to the Fiddler platform.

**Use Cases:**

* Non-Python integrations (Java, Go, JavaScript, etc.)
* Custom CI/CD pipelines
* Integration with existing monitoring systems
* Webhook-based automation

**Quick Start (cURL):**

```bash
# Publish events to Fiddler
curl -X POST https://app.fiddler.ai/api/v1/events \
  -H "Authorization: Bearer fid_..." \
  -H "Content-Type: application/json" \
  -d '{
    "project": "fraud-detection",
    "model": "fraud_model_v1",
    "events": [...]
  }'
```

[**View Full REST API Documentation →**](/api/rest-api/rest-api.md)

**API Guides:**

* [Environments](/api/rest-api/rest-api/environment.md) - Environment management
* [Jobs](/api/rest-api/rest-api/jobs.md) - Async job tracking
* [Model API](/api/rest-api/rest-api/model.md) - Model management
* [Custom Metrics](/api/rest-api/rest-api/custom-metrics.md) - Metric definitions
* [Explainability](/api/rest-api/rest-api/explainability.md) - SHAP explanations
* [File Upload](/api/rest-api/rest-api/file-upload.md) - Baseline and artifact uploads
* [Projects](/api/rest-api/rest-api/projects.md) - Project management
* [Baselines](/api/rest-api/rest-api/baseline.md) - Baseline datasets
* [Alert Rules](/api/rest-api/rest-api/alert-rules.md) - Alert configuration
* [Segments](/api/rest-api/rest-api/segments.md) - Segment management
* [Events](/api/rest-api/rest-api/events.md) - Event publishing

### [Guardrails API Reference](/api/rest-api/guardrails-api-reference.md)

API endpoints for Fiddler Centor Models guardrails.

***

## 🚀 Getting Started

### Choose Your SDK

| Your Use Case                                 | Recommended SDK                                                      |
| --------------------------------------------- | -------------------------------------------------------------------- |
| **Monitor ML/LLM and platform admin**         | [Python Client SDK](/api/fiddler-python-client-sdk/python-client.md) |
| **Evaluate LLM outputs**                      | [Fiddler Evals SDK](/api/fiddler-evals-sdk/evals.md)                 |
| **Custom Python agents / framework-agnostic** | [Fiddler OTel SDK](/api/fiddler-otel-sdk/otel.md)                    |
| **LangChain V1 (`create_agent`) apps**        | [Fiddler LangChain SDK](/api/fiddler-langchain-sdk/langchain.md)     |
| **Monitor LangGraph agents**                  | [Fiddler LangGraph SDK](/api/fiddler-langgraph-sdk/langgraph.md)     |
| **Monitor Strands Agents**                    | [Fiddler Strands SDK](/api/fiddler-strands-agents-sdk/strands.md)    |
| **Non-Python integration**                    | [REST API](/api/rest-api/rest-api.md)                                |

### Installation

**Python SDKs:**

```bash
# Python Client SDK
pip install fiddler-client

# Evals SDK
pip install fiddler-evals

# OTel SDK (https://pypi.org/project/fiddler-otel/)
pip install fiddler-otel

# LangChain SDK (https://pypi.org/project/fiddler-langchain/)
pip install fiddler-langchain

# LangGraph SDK (https://pypi.org/project/fiddler-langgraph/)
pip install fiddler-langgraph

# Strands SDK (https://pypi.org/project/fiddler-strands/)
pip install fiddler-strands
```

**REST API:** No installation required - use any HTTP client.

***

## 📚 Related Documentation

* [**Developer Guides**](/developers/platform/get-started-in-less-than-10-minutes.md) - Quick starts and tutorials
* [**Integrations**](https://docs.fiddler.ai/integrations/) - Connect with your ML stack
* [**Product Documentation**](https://docs.fiddler.ai/) - Platform features and concepts

***

## 💡 Common Workflows

### ML Model & LLM App Monitoring Workflow

1. Install [Python Client SDK](/api/fiddler-python-client-sdk/python-client.md)
2. Define [model schema](/api/fiddler-python-client-sdk/schemas/model-schema.md)
3. Upload [baseline dataset](/api/fiddler-python-client-sdk/entities/baseline.md)
4. [Publish production events](/api/rest-api/rest-api/events.md)
5. Configure [alerts](/api/fiddler-python-client-sdk/entities/alert-rule.md)

### LLM Experiments Workflow

1. Install [Fiddler Evals SDK](/api/fiddler-evals-sdk/evals.md)
2. Create a test dataset with the [Dataset API](/api/fiddler-evals-sdk/entities/dataset.md)
3. Define evaluators ([built-in](/api/fiddler-evals-sdk/evals.md#evaluators) or [custom](/api/fiddler-evals-sdk/evaluators/eval-fn.md))
4. Run [experiments](/api/fiddler-evals-sdk/entities/experiment.md) and analyze results

### Agent Monitoring Workflow

1. Install one of the agentic SDKs based on your stack: [OTel SDK](/api/fiddler-otel-sdk/otel.md) (framework-agnostic), [LangChain SDK](/api/fiddler-langchain-sdk/langchain.md), [LangGraph SDK](/api/fiddler-langgraph-sdk/langgraph.md), or [Strands SDK](/api/fiddler-strands-agents-sdk/strands.md)
2. Instrument your agent application
3. Deploy to production
4. View traces and analytics in the Fiddler platform

***

## 📖 Additional Resources

* [**GitHub Examples**](https://github.com/fiddler-labs/fiddler-examples) - Sample code and notebooks
* [**SDK Changelog**](/changelog/release-notes/python-sdk.md) - Latest SDK updates
* [**Support Portal**](mailto:support@fiddler.ai) - Enterprise support
* [**Community**](https://fiddler-community.slack.com) - Join our Slack community


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fiddler.ai/api/sdk-and-api-reference/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
