Sources
phoenix
Read transcripts from Arize Phoenix traces.
Each Phoenix trace (collection of spans with same trace_id) becomes one Scout transcript. Child spans (LLM calls, tools) become events within the transcript.
async def phoenix(
project: str | None = None,
from_time: datetime | None = None,
to_time: datetime | None = None,
trace_id: str | list[str] | None = None,
session_id: str | list[str] | None = None,
tags: list[str] | None = None,
metadata: dict[str, str] | None = None,
limit: int | None = None,
api_key: str | None = None,
base_url: str | None = None,
) -> AsyncIterator[Transcript]projectstr | None-
Phoenix project name or ID. Required for fetching spans.
from_timedatetime | None-
Only fetch traces created on or after this time
to_timedatetime | None-
Only fetch traces created before this time
trace_idstr | list[str] | None-
Fetch specific trace(s) by ID (single string or list)
session_idstr | list[str] | None-
Filter to traces belonging to specific session(s) (matches
session.idattribute on root span) tagslist[str] | None-
Filter by tags on root span (all must match; stored in
tag.tagsattribute) metadatadict[str, str] | None-
Filter by metadata key-value pairs on root span (all must match; stored in
metadata.*attributes) limitint | None-
Maximum number of transcripts to fetch
api_keystr | None-
Phoenix API key (or PHOENIX_API_KEY env var)
base_urlstr | None-
Phoenix base URL (or PHOENIX_COLLECTOR_ENDPOINT env var)
langsmith
Read transcripts from LangSmith traces.
Each LangSmith root run (trace) becomes one Scout transcript. Child runs (LLM calls, tools) become events within the transcript.
Data sources:
project- Import traces from a project (default)dataset- Import examples from a dataset
async def langsmith(
project: str | None = None,
dataset: str | None = None,
from_time: datetime | None = None,
to_time: datetime | None = None,
tags: list[str] | None = None,
filter: str | None = None,
trace_filter: str | None = None,
run_type: str | None = None,
limit: int | None = None,
api_key: str | None = None,
api_url: str | None = None,
) -> AsyncIterator[Transcript]projectstr | None-
LangSmith project name. Optional for dataset, used as default data source otherwise.
datasetstr | None-
LangSmith dataset name or ID. Fetches from curated evaluation datasets instead of project traces.
from_timedatetime | None-
Only fetch traces created on or after this time
to_timedatetime | None-
Only fetch traces created before this time
tagslist[str] | None-
Filter by tags (all must match)
filterstr | None-
LangSmith filter string for run filtering. Can use filters saved from the LangSmith UI.
trace_filterstr | None-
Filter on root run attributes
run_typestr | None-
Filter by run type (llm, chain, tool, etc.)
limitint | None-
Maximum number of transcripts to fetch
api_keystr | None-
LangSmith API key (or LANGSMITH_API_KEY env var)
api_urlstr | None-
LangSmith API URL (or LANGSMITH_ENDPOINT env var)
logfire
Read transcripts from Logfire traces.
Each Logfire trace (collection of spans with same trace_id) becomes one Scout transcript. Child spans (LLM calls, tools) become events within the transcript.
async def logfire(
project: str | None = None,
from_time: datetime | None = None,
to_time: datetime | None = None,
filter: str | None = None,
trace_id: str | None = None,
limit: int | None = None,
read_token: str | None = None,
) -> AsyncIterator[Transcript]projectstr | None-
Logfire project name in format “org/project”. If not provided, queries across all accessible projects.
from_timedatetime | None-
Only fetch traces created on or after this time
to_timedatetime | None-
Only fetch traces created before this time
filterstr | None-
SQL WHERE fragment for additional filtering (e.g., “attributes->>‘gen_ai.request.model’ = ‘gpt-4o’”)
trace_idstr | None-
Fetch a specific trace by ID instead of querying
limitint | None-
Maximum number of transcripts to fetch
read_tokenstr | None-
Logfire read token (or LOGFIRE_READ_TOKEN env var). Generate from Logfire dashboard Settings > Read Tokens.
weave
Read transcripts from W&B Weave traces.
Each Weave trace (root call + children) becomes one Scout transcript. Child calls (LLM calls, tools) become events within the transcript.
async def weave(
project: str,
from_time: datetime | None = None,
to_time: datetime | None = None,
filter: dict[str, Any] | None = None,
limit: int | None = None,
api_key: str | None = None,
) -> AsyncIterator[Transcript]projectstr-
W&B project name in format “entity/project”
from_timedatetime | None-
Only fetch traces created on or after this time
to_timedatetime | None-
Only fetch traces created before this time
filterdict[str, Any] | None-
Dictionary of filters to apply to call query
limitint | None-
Maximum number of transcripts to fetch
api_keystr | None-
W&B API key (or WANDB_API_KEY env var)
claude_code
Read transcripts from Claude Code sessions.
Each Claude Code session can contain multiple conversations separated by /clear commands. Each conversation becomes one Scout transcript.
When Claude Code enters plan mode and executes a plan, it creates separate session files that share the same slug. These related sessions are merged into a single transcript.
async def claude_code(
path: str | PathLike[str] | None = None,
session_id: str | None = None,
from_time: datetime | None = None,
to_time: datetime | None = None,
limit: int | None = None,
) -> AsyncIterator["Transcript"]pathstr | PathLike[str] | None-
Path to Claude Code project directory or specific session file. If None, scans all projects in ~/.claude/projects/
session_idstr | None-
Specific session UUID to import
from_timedatetime | None-
Only fetch sessions modified on or after this time
to_timedatetime | None-
Only fetch sessions modified before this time
limitint | None-
Maximum number of transcripts to yield