Traces Client¶
The Traces client provides methods for managing traces in the Opik platform.
- class opik.rest_api.traces.client.TracesClient(*, client_wrapper: SyncClientWrapper)¶
Bases:
object- add_thread_comment(id_: str, *, text: str, id: str | None = OMIT, source_queue_id: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Add thread comment
- Parameters:
id (Optional[str])
text (str)
id
source_queue_id (Optional[str])
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- add_trace_comment(id_: str, *, text: str, id: str | None = OMIT, source_queue_id: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Add trace comment
- Parameters:
id (Optional[str])
text (str)
id
source_queue_id (Optional[str])
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- add_trace_feedback_score(id: str, *, name: str, value: float, source: Literal['ui', 'sdk', 'online_scoring'] | Any, category_name: str | None = OMIT, reason: str | None = OMIT, source_queue_id: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, value_by_author: Dict[str, ValueEntry] | None = OMIT, request_options: RequestOptions | None = None) None¶
Add trace feedback score
- Parameters:
id (str)
name (str)
value (float)
source (FeedbackScoreSource)
category_name (Optional[str])
reason (Optional[str])
source_queue_id (Optional[str])
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
value_by_author (Optional[Dict[str, ValueEntry]])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- create_traces(*, traces: Sequence[TraceWrite], request_options: RequestOptions | None = None) None¶
Create traces
- Parameters:
traces (Sequence[TraceWrite])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- batch_update_traces(*, ids: Sequence[str], update: TraceUpdate, merge_tags: bool | None = OMIT, request_options: RequestOptions | None = None) None¶
Update multiple traces
- Parameters:
ids (Sequence[str]) – List of trace IDs to update (max 1000)
update (TraceUpdate)
merge_tags (Optional[bool]) – If true, merge tags with existing tags instead of replacing them. Default: false
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- batch_update_threads(*, ids: Sequence[str], update: TraceThreadUpdate, merge_tags: bool | None = OMIT, request_options: RequestOptions | None = None) None¶
Update multiple threads
- Parameters:
ids (Sequence[str]) – List of thread model IDs to update (max 1000)
update (TraceThreadUpdate)
merge_tags (Optional[bool]) – If true, merge tags with existing tags instead of replacing them. Default: false
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- close_trace_thread(*, project_name: str | None = OMIT, project_id: str | None = OMIT, thread_id: str | None = OMIT, thread_ids: Sequence[str] | None = OMIT, request_options: RequestOptions | None = None) None¶
Close one or multiple trace threads. Supports both single thread_id and multiple thread_ids for batch operations.
- Parameters:
project_name (Optional[str])
project_id (Optional[str])
thread_id (Optional[str])
thread_ids (Optional[Sequence[str]])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_traces_by_project(*, page: int | None = None, size: int | None = None, project_name: str | None = None, project_id: str | None = None, filters: str | None = None, truncate: bool | None = None, strip_attachments: bool | None = None, sorting: str | None = None, exclude: str | None = None, search: str | None = None, from_time: datetime | None = None, to_time: datetime | None = None, annotation_queue_id: str | None = None, request_options: RequestOptions | None = None) TracePagePublic¶
Get traces by project_name or project_id
- Parameters:
page (Optional[int])
size (Optional[int])
project_name (Optional[str])
project_id (Optional[str])
filters (Optional[str])
truncate (Optional[bool])
strip_attachments (Optional[bool])
sorting (Optional[str])
exclude (Optional[str])
search (Optional[str])
from_time (Optional[dt.datetime])
to_time (Optional[dt.datetime])
annotation_queue_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace resource
- Return type:
- create_trace(*, start_time: datetime, id: str | None = OMIT, project_name: str | None = OMIT, name: str | None = OMIT, end_time: datetime | None = OMIT, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, metadata: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, tags: Sequence[str] | None = OMIT, error_info: ErrorInfoWrite | None = OMIT, last_updated_at: datetime | None = OMIT, ttft: float | None = OMIT, thread_id: str | None = OMIT, source: Literal['sdk', 'experiment', 'playground', 'optimization', 'evaluator'] | Any | None = OMIT, environment: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Get trace
- Parameters:
start_time (dt.datetime)
id (Optional[str])
project_name (Optional[str]) – If null, the default project is used
name (Optional[str])
end_time (Optional[dt.datetime])
input (Optional[JsonListStringWrite])
output (Optional[JsonListStringWrite])
metadata (Optional[JsonListStringWrite])
tags (Optional[Sequence[str]])
error_info (Optional[ErrorInfoWrite])
last_updated_at (Optional[dt.datetime])
ttft (Optional[float]) – Time to first token in milliseconds
thread_id (Optional[str])
source (Optional[TraceWriteSource])
environment (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- get_trace_by_id(id: str, *, strip_attachments: bool | None = None, request_options: RequestOptions | None = None) TracePublic¶
Get trace by id
- Parameters:
id (str)
strip_attachments (Optional[bool])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace resource
- Return type:
- delete_trace_by_id(id: str, *, request_options: RequestOptions | None = None) None¶
Delete trace by id
- Parameters:
id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- update_trace(id: str, *, project_name: str | None = OMIT, project_id: str | None = OMIT, name: str | None = OMIT, end_time: datetime | None = OMIT, input: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, output: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, metadata: Dict[str, Any | None] | List[Dict[str, Any | None]] | str | None = OMIT, tags: Sequence[str] | None = OMIT, tags_to_add: Sequence[str] | None = OMIT, tags_to_remove: Sequence[str] | None = OMIT, error_info: ErrorInfo | None = OMIT, thread_id: str | None = OMIT, ttft: float | None = OMIT, source: Literal['sdk', 'experiment', 'playground', 'optimization', 'evaluator'] | Any | None = OMIT, environment: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Update trace by id
- Parameters:
id (str)
project_name (Optional[str]) – If null and project_id not specified, Default Project is assumed
project_id (Optional[str]) – If null and project_name not specified, Default Project is assumed
name (Optional[str])
end_time (Optional[dt.datetime])
input (Optional[JsonListString])
output (Optional[JsonListString])
metadata (Optional[JsonListString])
tags (Optional[Sequence[str]]) – Tags
tags_to_add (Optional[Sequence[str]]) – Tags to add
tags_to_remove (Optional[Sequence[str]]) – Tags to remove
error_info (Optional[ErrorInfo])
thread_id (Optional[str])
ttft (Optional[float])
source (Optional[TraceUpdateSource])
environment (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_thread_comments(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Delete thread comments
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_thread_feedback_scores(*, project_name: str, thread_id: str, names: Sequence[str], author: str | None = OMIT, source_queue_id: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Delete thread feedback scores
- Parameters:
project_name (str)
thread_id (str)
names (Sequence[str])
author (Optional[str])
source_queue_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_trace_comments(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Delete trace comments
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_trace_feedback_score(id: str, *, name: str, author: str | None = OMIT, source_queue_id: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Delete trace feedback score
- Parameters:
id (str)
name (str)
author (Optional[str])
source_queue_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_trace_threads(*, thread_ids: Sequence[str], project_name: str | None = OMIT, project_id: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Delete trace threads
- Parameters:
thread_ids (Sequence[str])
project_name (Optional[str]) – If null, project_id must be provided
project_id (Optional[str]) – If null, project_name must be provided
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- delete_traces(*, ids: Sequence[str], request_options: RequestOptions | None = None) None¶
Delete traces
- Parameters:
ids (Sequence[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- find_feedback_score_names2(*, project_id: str | None = None, request_options: RequestOptions | None = None) FeedbackScoreNamesPublic¶
Find Feedback Score names
- Parameters:
project_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Feedback Scores resource
- Return type:
- find_trace_threads_feedback_score_names(*, project_id: str | None = None, request_options: RequestOptions | None = None) FeedbackScoreNamesPublic¶
Find Trace Threads Feedback Score names
- Parameters:
project_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Find Trace Threads Feedback Score names
- Return type:
- get_trace_stats(*, project_id: str | None = None, project_name: str | None = None, filters: str | None = None, search: str | None = None, from_time: datetime | None = None, to_time: datetime | None = None, request_options: RequestOptions | None = None) ProjectStatsPublic¶
Get trace stats
- Parameters:
project_id (Optional[str])
project_name (Optional[str])
filters (Optional[str])
search (Optional[str])
from_time (Optional[dt.datetime])
to_time (Optional[dt.datetime])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace stats resource
- Return type:
- get_thread_comment(thread_id: str, comment_id: str, *, request_options: RequestOptions | None = None) Comment¶
Get thread comment
- Parameters:
thread_id (str)
comment_id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Comment resource
- Return type:
- get_trace_thread_stats(*, project_id: str | None = None, project_name: str | None = None, filters: str | None = None, search: str | None = None, from_time: datetime | None = None, to_time: datetime | None = None, request_options: RequestOptions | None = None) ProjectStatsPublic¶
Get trace thread stats
- Parameters:
project_id (Optional[str])
project_name (Optional[str])
filters (Optional[str])
search (Optional[str])
from_time (Optional[dt.datetime])
to_time (Optional[dt.datetime])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace thread stats resource
- Return type:
- get_trace_comment(trace_id: str, comment_id: str, *, request_options: RequestOptions | None = None) Comment¶
Get trace comment
- Parameters:
trace_id (str)
comment_id (str)
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Comment resource
- Return type:
- get_trace_thread(*, thread_id: str, project_name: str | None = OMIT, project_id: str | None = OMIT, truncate: bool | None = OMIT, request_options: RequestOptions | None = None) TraceThread¶
Get trace thread
- Parameters:
thread_id (str)
project_name (Optional[str])
project_id (Optional[str])
truncate (Optional[bool])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace thread resource
- Return type:
- get_trace_threads(*, page: int | None = None, size: int | None = None, project_name: str | None = None, project_id: str | None = None, truncate: bool | None = None, strip_attachments: bool | None = None, filters: str | None = None, sorting: str | None = None, search: str | None = None, from_time: datetime | None = None, to_time: datetime | None = None, annotation_queue_id: str | None = None, request_options: RequestOptions | None = None) TraceThreadPage¶
Get trace threads
- Parameters:
page (Optional[int])
size (Optional[int])
project_name (Optional[str])
project_id (Optional[str])
truncate (Optional[bool])
strip_attachments (Optional[bool])
filters (Optional[str])
sorting (Optional[str])
search (Optional[str])
from_time (Optional[dt.datetime])
to_time (Optional[dt.datetime])
annotation_queue_id (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace threads resource
- Return type:
- open_trace_thread(*, thread_id: str, project_name: str | None = OMIT, project_id: str | None = OMIT, truncate: bool | None = OMIT, request_options: RequestOptions | None = None) None¶
Open trace thread
- Parameters:
thread_id (str)
project_name (Optional[str])
project_id (Optional[str])
truncate (Optional[bool])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- score_batch_of_threads(*, scores: Sequence[FeedbackScoreBatchItemThread], request_options: RequestOptions | None = None) None¶
Batch feedback scoring for threads
- Parameters:
scores (Sequence[FeedbackScoreBatchItemThread])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- score_batch_of_traces(*, scores: Sequence[FeedbackScoreBatchItem], request_options: RequestOptions | None = None) None¶
Batch feedback scoring for traces
- Parameters:
scores (Sequence[FeedbackScoreBatchItem])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- search_trace_threads(*, project_name: str | None = OMIT, project_id: str | None = OMIT, filters: Sequence[TraceThreadFilter] | None = OMIT, last_retrieved_thread_model_id: str | None = OMIT, limit: int | None = OMIT, truncate: bool | None = OMIT, strip_attachments: bool | None = OMIT, from_time: datetime | None = OMIT, to_time: datetime | None = OMIT, request_options: RequestOptions | None = None) Iterator[bytes]¶
Search trace threads
- Parameters:
project_name (Optional[str])
project_id (Optional[str])
filters (Optional[Sequence[TraceThreadFilter]])
last_retrieved_thread_model_id (Optional[str])
limit (Optional[int]) – Max number of trace thread to be streamed
truncate (Optional[bool]) – Truncate input, output and metadata to slim payloads
strip_attachments (Optional[bool]) – If true, returns attachment references like [file.png]; if false, downloads and reinjects stripped attachments
from_time (Optional[dt.datetime]) – Filter trace threads created from this time (ISO-8601 format).
to_time (Optional[dt.datetime]) – Filter trace threads created up to this time (ISO-8601 format). If not provided, defaults to current time. Must be after ‘from_time’.
request_options (Optional[RequestOptions]) – Request-specific configuration. You can pass in configuration such as chunk_size, and more to customize the request and response.
- Returns:
Trace threads stream or error during process
- Return type:
Iterator[bytes]
- search_traces(*, project_name: str | None = OMIT, project_id: str | None = OMIT, filters: Sequence[TraceFilterPublic] | None = OMIT, last_retrieved_id: str | None = OMIT, limit: int | None = OMIT, truncate: bool | None = OMIT, strip_attachments: bool | None = OMIT, exclude: Sequence[Literal['name', 'start_time', 'end_time', 'input', 'output', 'metadata', 'tags', 'error_info', 'usage', 'created_at', 'created_by', 'last_updated_by', 'feedback_scores', 'span_feedback_scores', 'comments', 'guardrails_validations', 'total_estimated_cost', 'span_count', 'llm_span_count', 'has_tool_spans', 'duration', 'ttft', 'thread_id', 'visibility_mode', 'providers', 'experiment', 'source', 'environment'] | Any] | None = OMIT, from_time: datetime | None = OMIT, to_time: datetime | None = OMIT, request_options: RequestOptions | None = None) Iterator[bytes]¶
Search traces
- Parameters:
project_name (Optional[str])
project_id (Optional[str])
filters (Optional[Sequence[TraceFilterPublic]])
last_retrieved_id (Optional[str])
limit (Optional[int]) – Max number of traces to be streamed
truncate (Optional[bool]) – Truncate input, output and metadata to slim payloads
strip_attachments (Optional[bool]) – If true, returns attachment references like [file.png]; if false, downloads and reinjects stripped attachments
exclude (Optional[Sequence[TraceSearchStreamRequestPublicExcludeItem]]) – Fields to exclude from the response
from_time (Optional[dt.datetime]) – Filter traces created from this time (ISO-8601 format).
to_time (Optional[dt.datetime]) – Filter traces created up to this time (ISO-8601 format). If not provided, defaults to current time. Must be after ‘from_time’.
request_options (Optional[RequestOptions]) – Request-specific configuration. You can pass in configuration such as chunk_size, and more to customize the request and response.
- Returns:
Traces stream or error during process
- Return type:
Iterator[bytes]
- exist(*, project_id: str | None = None, project_name: str | None = None, source: str | None = None, thread_only: bool | None = None, request_options: RequestOptions | None = None) ExistenceResponse¶
Returns whether the project has at least one trace matching the given scope. Cheap existence probe (LIMIT 1) used to drive empty-state decisions without scanning or aggregating the whole project.
- Parameters:
project_id (Optional[str])
project_name (Optional[str])
source (Optional[str])
thread_only (Optional[bool])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Returns:
Trace existence
- Return type:
- update_thread(thread_model_id: str, *, tags: Sequence[str] | None = OMIT, tags_to_add: Sequence[str] | None = OMIT, tags_to_remove: Sequence[str] | None = OMIT, request_options: RequestOptions | None = None) None¶
Update thread
- Parameters:
thread_model_id (str)
tags (Optional[Sequence[str]])
tags_to_add (Optional[Sequence[str]])
tags_to_remove (Optional[Sequence[str]])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- update_thread_comment(comment_id: str, *, text: str, id: str | None = OMIT, source_queue_id: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Update thread comment by id
- Parameters:
comment_id (str)
text (str)
id (Optional[str])
source_queue_id (Optional[str])
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
- update_trace_comment(comment_id: str, *, text: str, id: str | None = OMIT, source_queue_id: str | None = OMIT, created_at: datetime | None = OMIT, last_updated_at: datetime | None = OMIT, created_by: str | None = OMIT, last_updated_by: str | None = OMIT, request_options: RequestOptions | None = None) None¶
Update trace comment by id
- Parameters:
comment_id (str)
text (str)
id (Optional[str])
source_queue_id (Optional[str])
created_at (Optional[dt.datetime])
last_updated_at (Optional[dt.datetime])
created_by (Optional[str])
last_updated_by (Optional[str])
request_options (Optional[RequestOptions]) – Request-specific configuration.
- Return type:
None
Usage Example¶
import opik
client = opik.Opik()
# Get a trace by ID
trace = client.rest_client.traces.get_trace_by_id("trace-id")
# Search for traces
traces = client.rest_client.traces.search_traces(
project_name="my-project",
max_results=100
)
# Add feedback score to a trace
client.rest_client.traces.add_trace_feedback_score(
id="trace-id",
name="accuracy",
value=0.95
)