API Overview
class ActionsExecuteBatchReq
Pydantic Fields:
project_id:<class 'str'>action_ref:<class 'str'>call_ids:list[str]wb_user_id:str | None
class ActionsExecuteBatchRes
class AggregationType
Aggregation functions supported by feedback and call stats metrics.
class AliasesListReq
Pydantic Fields:
project_id:<class 'str'>wb_user_id:str | None
class AliasesListRes
Pydantic Fields:
aliases:list[str]
class AnnotationQueueAddCallsReq
Request to add calls to an annotation queue in batch.
Extends AnnotationQueueAddCallsBody by adding queue_id for internal API usage.
Pydantic Fields:
project_id:<class 'str'>call_ids:list[str]display_fields:list[str]queue_id:<class 'str'>wb_user_id:str | None
class AnnotationQueueAddCallsRes
Response from adding calls to a queue.
Pydantic Fields:
added_count:<class 'int'>duplicates:<class 'int'>
class AnnotationQueueCreateReq
Request to create a new annotation queue.
Pydantic Fields:
project_id:<class 'str'>name:<class 'str'>description:<class 'str'>scorer_refs:list[str]wb_user_id:str | None
class AnnotationQueueCreateRes
Response from creating an annotation queue.
Pydantic Fields:
id:<class 'str'>
class AnnotationQueueDeleteReq
Request to delete (soft-delete) an annotation queue.
Pydantic Fields:
project_id:<class 'str'>queue_id:<class 'str'>wb_user_id:str | None
class AnnotationQueueDeleteRes
Response from deleting an annotation queue.
Pydantic Fields:
queue:<class 'AnnotationQueueSchema'>
class AnnotationQueueItemSchema
Schema for annotation queue item responses.
Pydantic Fields:
id:<class 'str'>project_id:<class 'str'>queue_id:<class 'str'>call_id:<class 'str'>call_started_at:<class 'datetime.datetime'>call_ended_at:datetime.datetime | Nonecall_op_name:<class 'str'>call_trace_id:<class 'str'>display_fields:list[str]added_by:str | Noneannotation_state:typing.Literal['unstarted', 'in_progress', 'completed', 'skipped']annotator_user_id:str | Nonecreated_at:<class 'datetime.datetime'>created_by:<class 'str'>updated_at:<class 'datetime.datetime'>deleted_at:datetime.datetime | Noneposition_in_queue:int | None
class AnnotationQueueItemsQueryReq
Request to query items in an annotation queue.
Extends AnnotationQueueItemsQueryBody by adding queue_id for internal API usage.
Pydantic Fields:
project_id:<class 'str'>filter:weave.trace_server.common_interface.AnnotationQueueItemsFilter | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | Nonelimit:int | Noneoffset:int | Noneinclude_position:<class 'bool'>queue_id:<class 'str'>
class AnnotationQueueItemsQueryRes
Response from querying annotation queue items.
Pydantic Fields:
items:list[AnnotationQueueItemSchema]
class AnnotationQueueReadReq
Request to read a specific annotation queue.
Pydantic Fields:
project_id:<class 'str'>queue_id:<class 'str'>
class AnnotationQueueReadRes
Response from reading an annotation queue.
Pydantic Fields:
queue:<class 'AnnotationQueueSchema'>
class AnnotationQueueSchema
Schema for annotation queue responses.
Pydantic Fields:
id:<class 'str'>project_id:<class 'str'>name:<class 'str'>description:<class 'str'>scorer_refs:list[str]created_at:<class 'datetime.datetime'>created_by:<class 'str'>updated_at:<class 'datetime.datetime'>deleted_at:datetime.datetime | None
class AnnotationQueueStatsSchema
Statistics for a single annotation queue.
Pydantic Fields:
queue_id:<class 'str'>total_items:<class 'int'>completed_items:<class 'int'>
class AnnotationQueueUpdateReq
Request to update an annotation queue.
All fields except project_id and queue_id are optional - only provided fields will be updated.
Pydantic Fields:
project_id:<class 'str'>queue_id:<class 'str'>name:str | Nonedescription:str | Nonescorer_refs:list[str] | Nonewb_user_id:str | None
class AnnotationQueueUpdateRes
Response from updating an annotation queue.
Pydantic Fields:
queue:<class 'AnnotationQueueSchema'>
class AnnotationQueuesQueryReq
Request to query annotation queues for a project.
Pydantic Fields:
project_id:<class 'str'>name:str | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | Nonelimit:int | Noneoffset:int | None
class AnnotationQueuesQueryRes
Response from querying annotation queues.
Pydantic Fields:
queues:list[AnnotationQueueSchema]
class AnnotationQueuesStatsReq
Request to get stats for multiple annotation queues.
Pydantic Fields:
project_id:<class 'str'>queue_ids:list[str]
class AnnotationQueuesStatsRes
Response with stats for multiple annotation queues.
Pydantic Fields:
stats:list[AnnotationQueueStatsSchema]
class AnnotatorQueueItemsProgressUpdateReq
Request to update the annotation state of a queue item for the current annotator.
Valid state transitions:
- (absence) -> ‘in_progress’: Mark item as in progress (only when no record exists)
- (absence) -> ‘completed’ or ‘skipped’: Directly complete/skip item
- ‘in_progress’ or ‘unstarted’ -> ‘completed’ or ‘skipped’: Complete/skip started item
- same_state -> same_state: Idempotent no-op (returns existing item unchanged)
project_id:<class 'str'>queue_id:<class 'str'>item_id:<class 'str'>annotation_state:<class 'str'>wb_user_id:str | None
class AnnotatorQueueItemsProgressUpdateRes
Response from updating annotation state.
Pydantic Fields:
item:<class 'AnnotationQueueItemSchema'>
class CallBatchEndMode
Pydantic Fields:
mode:<class 'str'>req:<class 'CallEndReq'>
class CallBatchStartMode
Pydantic Fields:
mode:<class 'str'>req:<class 'CallStartReq'>
class CallCreateBatchReq
Pydantic Fields:
batch:list[CallBatchStartMode | CallBatchEndMode]
class CallCreateBatchRes
Pydantic Fields:
res:list[CallStartRes | CallEndRes]
class CallEndReq
Pydantic Fields:
end:<class 'EndedCallSchemaForInsert'>
class CallEndRes
class CallEndV2Req
Request for ending a single call via v2 API.
Pydantic Fields:
end:<class 'EndedCallSchemaForInsertWithStartedAt'>
class CallEndV2Res
Response for ending a single call via v2 API.
class CallMetricSpec
Specification for a call-level metric to aggregate (not grouped by model).
Pydantic Fields:
metric:typing.Literal['latency_ms', 'call_count', 'error_count']aggregations:list[AggregationType]percentiles:list[float]
class CallReadReq
Pydantic Fields:
project_id:<class 'str'>id:<class 'str'>include_costs:bool | Noneinclude_storage_size:bool | Noneinclude_total_storage_size:bool | None
class CallReadRes
Pydantic Fields:
call:CallSchema | None
class CallSchema
Pydantic Fields:
id:<class 'str'>project_id:<class 'str'>op_name:<class 'str'>display_name:str | Nonetrace_id:<class 'str'>parent_id:str | Nonethread_id:str | Noneturn_id:str | Nonestarted_at:<class 'datetime.datetime'>attributes:dict[str, typing.Any]inputs:dict[str, typing.Any]ended_at:datetime.datetime | Noneexception:str | Noneoutput:typing.Any | Nonesummary:SummaryMap | Nonewb_user_id:str | Nonewb_run_id:str | Nonewb_run_step:int | Nonewb_run_step_end:int | Nonedeleted_at:datetime.datetime | Nonestorage_size_bytes:int | Nonetotal_storage_size_bytes:int | None
method serialize_typed_dicts
class CallStartReq
Pydantic Fields:
start:<class 'StartedCallSchemaForInsert'>
class CallStartRes
Pydantic Fields:
id:<class 'str'>trace_id:<class 'str'>
class CallStartV2Req
Request for starting a single call via v2 API.
Pydantic Fields:
start:<class 'StartedCallSchemaForInsert'>
class CallStartV2Res
Response for starting a single call via v2 API.
Pydantic Fields:
id:<class 'str'>trace_id:<class 'str'>
class CallStatsReq
Request for aggregated call statistics over a time range.
Pydantic Fields:
project_id:<class 'str'>start:<class 'datetime.datetime'>end:datetime.datetime | Nonegranularity:int | Noneusage_metrics:list[UsageMetricSpec] | Nonecall_metrics:list[CallMetricSpec] | Nonefilter:CallsFilter | Nonetimezone:<class 'str'>
method validate_date_range
class CallStatsRes
Response containing time-series call statistics.
Pydantic Fields:
start:<class 'datetime.datetime'>end:<class 'datetime.datetime'>granularity:<class 'int'>timezone:<class 'str'>usage_buckets:list[dict[str, typing.Any]]call_buckets:list[dict[str, typing.Any]]
class CallUpdateReq
Pydantic Fields:
project_id:<class 'str'>call_id:<class 'str'>display_name:str | Nonewb_user_id:str | None
class CallUpdateRes
class CallsDeleteReq
Pydantic Fields:
project_id:<class 'str'>call_ids:list[str]wb_user_id:str | None
class CallsDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class CallsFilter
Pydantic Fields:
op_names:list[str] | Noneinput_refs:list[str] | Noneoutput_refs:list[str] | Noneparent_ids:list[str] | Nonetrace_ids:list[str] | Nonecall_ids:list[str] | Nonethread_ids:list[str] | Noneturn_ids:list[str] | Nonetrace_roots_only:bool | Nonewb_user_ids:list[str] | Nonewb_run_ids:list[str] | None
class CallsQueryReq
Pydantic Fields:
project_id:<class 'str'>filter:CallsFilter | Nonelimit:int | Noneoffset:int | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | Nonequery:weave.trace_server.interface.query.Query | Noneinclude_costs:bool | Noneinclude_feedback:bool | Noneinclude_storage_size:bool | Noneinclude_total_storage_size:bool | Nonecolumns:list[str] | Noneexpand_columns:list[str] | Nonereturn_expanded_column_values:bool | None
class CallsQueryRes
Pydantic Fields:
calls:list[CallSchema]
class CallsQueryStatsReq
Pydantic Fields:
project_id:<class 'str'>filter:CallsFilter | Nonequery:weave.trace_server.interface.query.Query | Nonelimit:int | Noneinclude_total_storage_size:bool | Noneexpand_columns:list[str] | None
class CallsQueryStatsRes
Pydantic Fields:
count:<class 'int'>total_storage_size_bytes:int | None
class CallsScoreReq
Request to enqueue scoring jobs for a list of calls.
Scoring is performed asynchronously by the call_scoring_worker, which consumes messages from Kafka and applies each scorer_ref to each call_id.
Pydantic Fields:
project_id:<class 'str'>call_ids:list[str]scorer_refs:list[str]wb_user_id:str | None
class CallsScoreRes
Empty response for calls_score.
Defined as a model (rather than returning None) to follow the convention used throughout this interface and to allow fields to be added later without a breaking change.
class CallsUpsertCompleteReq
Request for upserting a batch of completed calls.
Pydantic Fields:
batch:list[CompletedCallSchemaForInsert]
class CallsUpsertCompleteRes
Response for upserting a batch of completed calls.
class CallsUsageReq
Request to compute aggregated usage for multiple root calls.
This endpoint returns usage metrics for each requested root call, where each root’s metrics include the sum of its own usage plus all descendants’ usage.
Note: All matching calls are loaded into memory for aggregation. For very large result sets (>10k calls), consider batching root call IDs or using narrower filters at the application layer.
Pydantic Fields:
project_id:<class 'str'>call_ids:list[str]include_costs:<class 'bool'>limit:<class 'int'>
class CallsUsageRes
Response with aggregated usage metrics per root call.
Pydantic Fields:
call_usage:dict[str, dict[str, LLMAggregatedUsage]]unfinished_call_ids:list[str]
class CompletedCallSchemaForInsert
Schema for inserting a completed call directly.
This represents a call that is already finished at insertion time, with both start and end information provided together. Used by the calls_complete endpoint.
Pydantic Fields:
project_id:<class 'str'>id:<class 'str'>trace_id:<class 'str'>op_name:<class 'str'>started_at:<class 'datetime.datetime'>ended_at:<class 'datetime.datetime'>display_name:str | Noneparent_id:str | Nonethread_id:str | Noneturn_id:str | Noneattributes:dict[str, typing.Any]inputs:dict[str, typing.Any]output:typing.Any | Nonesummary:<class 'SummaryInsertMap'>otel_dump:dict[str, typing.Any] | Noneexception:str | Nonewb_user_id:str | Nonewb_run_id:str | Nonewb_run_step:int | Nonewb_run_step_end:int | None
method serialize_typed_dicts
class CompletionsCreateReq
Pydantic Fields:
project_id:<class 'str'>inputs:<class 'CompletionsCreateRequestInputs'>wb_user_id:str | Nonetrack_llm_call:bool | Nonetrace_id:str | Noneparent_id:str | None
class CompletionsCreateRequestInputs
Pydantic Fields:
model:<class 'str'>messages:<class 'list'>timeout:float | str | Nonetemperature:float | Nonetop_p:float | Nonen:int | Nonestop:str | list | Nonemax_completion_tokens:int | Nonemax_tokens:int | Nonemodalities:list | Nonepresence_penalty:float | Nonefrequency_penalty:float | Nonestream:bool | Nonelogit_bias:dict | Noneuser:str | Noneresponse_format:dict | type[pydantic.main.BaseModel] | Noneseed:int | Nonetools:list | Nonetool_choice:str | dict | Nonelogprobs:bool | Nonetop_logprobs:int | Noneparallel_tool_calls:bool | Noneextra_headers:dict | Nonefunctions:list | Nonefunction_call:str | Noneapi_version:str | Noneprompt:str | Nonetemplate_vars:dict[str, typing.Any] | Nonevertex_credentials:str | None
class CompletionsCreateRes
Pydantic Fields:
response:dict[str, typing.Any]weave_call_id:str | None
class CostCreateInput
Pydantic Fields:
prompt_token_cost:<class 'float'>completion_token_cost:<class 'float'>prompt_token_cost_unit:str | Nonecompletion_token_cost_unit:str | Noneeffective_date:datetime.datetime | Noneprovider_id:str | None
class CostCreateReq
Pydantic Fields:
project_id:<class 'str'>costs:dict[str, CostCreateInput]wb_user_id:str | None
class CostCreateRes
Pydantic Fields:
ids:list[tuple[str, str]]
class CostPurgeReq
Pydantic Fields:
project_id:<class 'str'>query:<class 'weave.trace_server.interface.query.Query'>
class CostPurgeRes
class CostQueryOutput
Pydantic Fields:
id:str | Nonellm_id:str | Noneprompt_token_cost:float | Nonecompletion_token_cost:float | Noneprompt_token_cost_unit:str | Nonecompletion_token_cost_unit:str | Noneeffective_date:datetime.datetime | Noneprovider_id:str | None
class CostQueryReq
Pydantic Fields:
project_id:<class 'str'>fields:list[str] | Nonequery:weave.trace_server.interface.query.Query | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | Nonelimit:int | Noneoffset:int | None
class CostQueryRes
Pydantic Fields:
results:list[CostQueryOutput]
class DatasetCreateBody
Pydantic Fields:
name:str | Nonedescription:str | Nonerows:list[dict[str, typing.Any]]
class DatasetCreateReq
Pydantic Fields:
name:str | Nonedescription:str | Nonerows:list[dict[str, typing.Any]]project_id:<class 'str'>wb_user_id:str | None
class DatasetCreateRes
Pydantic Fields:
digest:<class 'str'>object_id:<class 'str'>version_index:<class 'int'>
class DatasetDeleteReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digests:list[str] | Nonewb_user_id:str | None
class DatasetDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class DatasetListReq
Pydantic Fields:
project_id:<class 'str'>limit:int | Noneoffset:int | Nonewb_user_id:str | None
class DatasetReadReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>wb_user_id:str | None
class DatasetReadRes
Pydantic Fields:
object_id:<class 'str'>digest:<class 'str'>version_index:<class 'int'>created_at:<class 'datetime.datetime'>name:<class 'str'>description:str | Nonerows:<class 'str'>
class EndedCallSchemaForInsert
Pydantic Fields:
project_id:<class 'str'>id:<class 'str'>ended_at:<class 'datetime.datetime'>exception:str | Noneoutput:typing.Any | Nonesummary:<class 'SummaryInsertMap'>wb_run_step_end:int | None
method serialize_typed_dicts
class EndedCallSchemaForInsertWithStartedAt
Ended call schema with optional started_at for v2 end updates.
When started_at is provided, it enables more efficient ClickHouse queries by utilizing the primary key (project_id, started_at, id). Without it, the query falls back to using only (project_id, id).
Pydantic Fields:
project_id:<class 'str'>id:<class 'str'>ended_at:<class 'datetime.datetime'>exception:str | Noneoutput:typing.Any | Nonesummary:<class 'SummaryInsertMap'>wb_run_step_end:int | Nonestarted_at:datetime.datetime | None
method serialize_typed_dicts
class EvalResultsEvaluationSummary
Pydantic Fields:
evaluation_call_id:<class 'str'>trial_count:<class 'int'>scorer_stats:list[EvalResultsScorerStats]evaluation_ref:str | Nonemodel_ref:str | Nonedisplay_name:str | Nonetrace_id:str | Nonestarted_at:str | None
class EvalResultsQueryBody
Pydantic Fields:
evaluation_call_ids:list[str] | Noneevaluation_run_ids:list[str] | Nonerequire_intersection:<class 'bool'>include_raw_data_rows:<class 'bool'>resolve_row_refs:<class 'bool'>include_rows:<class 'bool'>include_summary:<class 'bool'>summary_require_intersection:bool | Nonelimit:int | Noneoffset:<class 'int'>
method validate_identifiers
class EvalResultsQueryReq
Pydantic Fields:
evaluation_call_ids:list[str] | Noneevaluation_run_ids:list[str] | Nonerequire_intersection:<class 'bool'>include_raw_data_rows:<class 'bool'>resolve_row_refs:<class 'bool'>include_rows:<class 'bool'>include_summary:<class 'bool'>summary_require_intersection:bool | Nonelimit:int | Noneoffset:<class 'int'>project_id:<class 'str'>
method validate_identifiers
class EvalResultsQueryRes
Pydantic Fields:
rows:list[EvalResultsRow]total_rows:<class 'int'>summary:ForwardRef('EvalResultsSummaryRes | None')warnings:list[str]
class EvalResultsRow
Pydantic Fields:
row_digest:<class 'str'>raw_data_row:typing.Any | Noneevaluations:list[EvalResultsRowEvaluation]
class EvalResultsRowEvaluation
Pydantic Fields:
evaluation_call_id:<class 'str'>trials:list[EvalResultsTrial]
class EvalResultsScorerStats
Stats for a single flattened score dimension (scorer_key or scorer_key.path.to.leaf).
Pydantic Fields:
scorer_key:<class 'str'>path:str | Nonevalue_type:typing.Optional[typing.Literal['binary', 'continuous']]trial_count:<class 'int'>numeric_count:<class 'int'>numeric_mean:float | Nonepass_true_count:<class 'int'>pass_known_count:<class 'int'>pass_rate:float | Nonepass_signal_coverage:float | None
class EvalResultsSummaryRes
Pydantic Fields:
row_count:<class 'int'>evaluations:list[EvalResultsEvaluationSummary]
class EvalResultsTrial
Pydantic Fields:
predict_and_score_call_id:<class 'str'>predict_call_id:str | Nonemodel_output:typing.Any | Nonescores:dict[str, typing.Any]model_latency_seconds:float | Nonetotal_tokens:int | Nonescorer_call_ids:dict[str, str]
class EvaluateModelReq
Pydantic Fields:
project_id:<class 'str'>evaluation_ref:<class 'str'>model_ref:<class 'str'>wb_user_id:str | None
class EvaluateModelRes
Pydantic Fields:
call_id:<class 'str'>
class EvaluationCreateBody
Pydantic Fields:
name:<class 'str'>description:str | Nonedataset:<class 'str'>scorers:list[str] | Nonetrials:<class 'int'>evaluation_name:str | Noneeval_attributes:dict[str, typing.Any] | None
class EvaluationCreateReq
Pydantic Fields:
name:<class 'str'>description:str | Nonedataset:<class 'str'>scorers:list[str] | Nonetrials:<class 'int'>evaluation_name:str | Noneeval_attributes:dict[str, typing.Any] | Noneproject_id:<class 'str'>wb_user_id:str | None
class EvaluationCreateRes
Pydantic Fields:
digest:<class 'str'>object_id:<class 'str'>version_index:<class 'int'>evaluation_ref:<class 'str'>
class EvaluationDeleteReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digests:list[str] | Nonewb_user_id:str | None
class EvaluationDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class EvaluationListReq
Pydantic Fields:
project_id:<class 'str'>limit:int | Noneoffset:int | Nonewb_user_id:str | None
class EvaluationReadReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>wb_user_id:str | None
class EvaluationReadRes
Pydantic Fields:
object_id:<class 'str'>digest:<class 'str'>version_index:<class 'int'>created_at:<class 'datetime.datetime'>name:<class 'str'>description:str | Nonedataset:<class 'str'>scorers:list[str]trials:<class 'int'>evaluation_name:str | Noneevaluate_op:str | Nonepredict_and_score_op:str | Nonesummarize_op:str | None
class EvaluationRunCreateBody
Pydantic Fields:
evaluation:<class 'str'>model:<class 'str'>
class EvaluationRunCreateReq
Pydantic Fields:
evaluation:<class 'str'>model:<class 'str'>project_id:<class 'str'>wb_user_id:str | None
class EvaluationRunCreateRes
Pydantic Fields:
evaluation_run_id:<class 'str'>
class EvaluationRunDeleteReq
Pydantic Fields:
project_id:<class 'str'>evaluation_run_ids:list[str]wb_user_id:str | None
class EvaluationRunDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class EvaluationRunFilter
Pydantic Fields:
evaluations:list[str] | Nonemodels:list[str] | Noneevaluation_run_ids:list[str] | None
class EvaluationRunFinishBody
Request body for finishing an evaluation run via REST API.
This model excludes project_id and evaluation_run_id since they come from the URL path in RESTful endpoints.
Pydantic Fields:
summary:dict[str, typing.Any] | None
class EvaluationRunFinishReq
Pydantic Fields:
summary:dict[str, typing.Any] | Noneproject_id:<class 'str'>evaluation_run_id:<class 'str'>wb_user_id:str | None
class EvaluationRunFinishRes
Pydantic Fields:
success:<class 'bool'>
class EvaluationRunListReq
Pydantic Fields:
project_id:<class 'str'>filter:EvaluationRunFilter | Nonelimit:int | Noneoffset:int | None
class EvaluationRunReadReq
Pydantic Fields:
project_id:<class 'str'>evaluation_run_id:<class 'str'>
class EvaluationRunReadRes
Pydantic Fields:
evaluation_run_id:<class 'str'>evaluation:<class 'str'>model:<class 'str'>status:str | Nonestarted_at:datetime.datetime | Nonefinished_at:datetime.datetime | Nonesummary:dict[str, typing.Any] | None
class EvaluationStatusComplete
Pydantic Fields:
code:typing.Literal['complete']output:dict[str, typing.Any]
class EvaluationStatusFailed
Pydantic Fields:
code:typing.Literal['failed']error:str | None
class EvaluationStatusNotFound
Pydantic Fields:
code:typing.Literal['not_found']
class EvaluationStatusReq
Pydantic Fields:
project_id:<class 'str'>call_id:<class 'str'>
class EvaluationStatusRes
Pydantic Fields:
status:EvaluationStatusNotFound | EvaluationStatusRunning | EvaluationStatusFailed | EvaluationStatusComplete
class EvaluationStatusRunning
Pydantic Fields:
code:typing.Literal['running']completed_rows:<class 'int'>total_rows:<class 'int'>
class ExportTracePartialSuccess
Pydantic Fields:
rejected_spans:<class 'int'>error_message:<class 'str'>
class ExtraKeysTypedDict
class Feedback
Pydantic Fields:
id:<class 'str'>project_id:<class 'str'>weave_ref:<class 'str'>creator:str | Nonefeedback_type:<class 'str'>payload:dict[str, typing.Any]annotation_ref:str | Nonerunnable_ref:str | Nonecall_ref:str | Nonetrigger_ref:str | Nonequeue_id:str | Nonewb_user_id:str | Nonecreated_at:<class 'datetime.datetime'>
class FeedbackCreateBatchReq
Pydantic Fields:
batch:list[FeedbackCreateReq]
class FeedbackCreateBatchRes
Pydantic Fields:
res:list[FeedbackCreateRes]
class FeedbackCreateReq
Pydantic Fields:
id:str | Noneproject_id:<class 'str'>weave_ref:<class 'str'>creator:str | Nonefeedback_type:<class 'str'>payload:dict[str, typing.Any]annotation_ref:str | Nonerunnable_ref:str | Nonecall_ref:str | Nonetrigger_ref:str | Nonequeue_id:str | Nonewb_user_id:str | None
class FeedbackCreateRes
Pydantic Fields:
id:<class 'str'>created_at:<class 'datetime.datetime'>wb_user_id:<class 'str'>payload:dict[str, typing.Any]
class FeedbackDict
class FeedbackMetricSpec
Specification for a feedback payload metric to aggregate.
Pydantic Fields:
json_path:<class 'str'>value_type:typing.Literal['numeric', 'boolean', 'categorical']aggregations:list[AggregationType]percentiles:list[float]
class FeedbackPayloadPath
Discovered path in feedback payload with inferred type.
Pydantic Fields:
json_path:<class 'str'>value_type:typing.Literal['numeric', 'boolean', 'categorical']
class FeedbackPayloadSchemaReq
Request for feedback payload schema discovery.
Pydantic Fields:
project_id:<class 'str'>start:<class 'datetime.datetime'>end:datetime.datetime | Nonefeedback_type:str | Nonetrigger_ref:str | Nonesample_limit:<class 'int'>
method validate_date_range
class FeedbackPayloadSchemaRes
Response with discovered feedback payload paths and types.
Pydantic Fields:
paths:list[FeedbackPayloadPath]
class FeedbackPurgeReq
Pydantic Fields:
project_id:<class 'str'>query:<class 'weave.trace_server.interface.query.Query'>
class FeedbackPurgeRes
class FeedbackQueryReq
Pydantic Fields:
project_id:<class 'str'>fields:list[str] | Nonequery:weave.trace_server.interface.query.Query | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | Nonelimit:int | Noneoffset:int | None
class FeedbackQueryRes
Pydantic Fields:
result:list[dict[str, typing.Any]]
class FeedbackReplaceReq
Pydantic Fields:
id:str | Noneproject_id:<class 'str'>weave_ref:<class 'str'>creator:str | Nonefeedback_type:<class 'str'>payload:dict[str, typing.Any]annotation_ref:str | Nonerunnable_ref:str | Nonecall_ref:str | Nonetrigger_ref:str | Nonequeue_id:str | Nonewb_user_id:str | Nonefeedback_id:<class 'str'>
class FeedbackReplaceRes
Pydantic Fields:
id:<class 'str'>created_at:<class 'datetime.datetime'>wb_user_id:<class 'str'>payload:dict[str, typing.Any]
class FeedbackStatsReq
Request for aggregated feedback statistics over time buckets.
Pydantic Fields:
project_id:<class 'str'>start:<class 'datetime.datetime'>end:datetime.datetime | Nonefeedback_type:str | Nonetrigger_ref:str | Nonegranularity:int | Nonetimezone:<class 'str'>metrics:list[FeedbackMetricSpec]
method validate_date_range
class FeedbackStatsRes
Response with time-series feedback statistics.
Pydantic Fields:
start:<class 'datetime.datetime'>end:<class 'datetime.datetime'>granularity:<class 'int'>timezone:<class 'str'>buckets:list[dict[str, typing.Any]]window_stats:dict[str, dict[str, float | None]] | None
class FileContentReadReq
Pydantic Fields:
project_id:<class 'str'>digest:<class 'str'>
class FileContentReadRes
Pydantic Fields:
content:<class 'bytes'>
class FileCreateReq
Pydantic Fields:
project_id:<class 'str'>name:<class 'str'>content:<class 'bytes'>expected_digest:str | None
class FileCreateRes
Pydantic Fields:
digest:<class 'str'>
class FilesStatsReq
Pydantic Fields:
project_id:<class 'str'>
class FilesStatsRes
Pydantic Fields:
total_size_bytes:<class 'int'>
class FullTraceServerInterface
Complete trace server interface supporting both V1 and Object APIs.
This protocol represents a trace server implementation that supports the full set of APIs - both legacy V1 endpoints and modern Object endpoints. Use this type for implementations that need to support both API versions.
method actions_execute_batch
method aliases_list
method annotation_queue_add_calls
method annotation_queue_create
method annotation_queue_delete
method annotation_queue_items_query
method annotation_queue_read
method annotation_queue_update
method annotation_queues_query_stream
method annotation_queues_stats
method annotator_queue_items_progress_update
method call_end
method call_end_v2
method call_read
method call_start
method call_start_batch
method call_start_v2
method call_stats
method call_update
method calls_complete
method calls_delete
method calls_query
method calls_query_stats
method calls_query_stream
method calls_score
method calls_usage
method completions_create
method completions_create_stream
method cost_create
method cost_purge
method cost_query
method dataset_create
method dataset_delete
method dataset_list
method dataset_read
method eval_results_query
method evaluate_model
method evaluation_create
method evaluation_delete
method evaluation_list
method evaluation_read
method evaluation_run_create
method evaluation_run_delete
method evaluation_run_finish
method evaluation_run_list
method evaluation_run_read
method evaluation_status
method feedback_create
method feedback_create_batch
method feedback_payload_schema
method feedback_purge
method feedback_query
method feedback_replace
method feedback_stats
method file_content_read
method file_create
method files_stats
method image_create
method model_create
method model_delete
method model_list
method model_read
method obj_add_tags
method obj_create
method obj_delete
method obj_read
method obj_remove_aliases
method obj_remove_tags
method obj_set_aliases
method objs_query
method op_create
method op_delete
method op_list
method op_read
method otel_export
method prediction_create
method prediction_delete
method prediction_finish
method prediction_list
method prediction_read
method project_stats
method refs_read_batch
method score_create
method score_delete
method score_list
method score_read
method scorer_create
method scorer_delete
method scorer_list
method scorer_read
method table_create
method table_create_from_digests
method table_query
method table_query_stats
method table_query_stats_batch
method table_query_stream
method table_update
method tags_list
method threads_query_stream
method trace_usage
class ImageGenerationCreateReq
Pydantic Fields:
project_id:<class 'str'>inputs:<class 'ImageGenerationRequestInputs'>wb_user_id:str | Nonetrack_llm_call:bool | None
class ImageGenerationCreateRes
Pydantic Fields:
response:dict[str, typing.Any]weave_call_id:str | None
class ImageGenerationRequestInputs
Pydantic Fields:
model:<class 'str'>prompt:<class 'str'>n:int | None
class LLMAggregatedUsage
Aggregated usage metrics for a specific LLM.
Pydantic Fields:
requests:<class 'int'>prompt_tokens:<class 'int'>completion_tokens:<class 'int'>total_tokens:<class 'int'>prompt_tokens_total_cost:float | Nonecompletion_tokens_total_cost:float | None
class LLMCostSchema
class LLMUsageSchema
class ModelCreateBody
Pydantic Fields:
name:<class 'str'>description:str | Nonesource_code:<class 'str'>attributes:dict[str, typing.Any] | None
class ModelCreateReq
Pydantic Fields:
name:<class 'str'>description:str | Nonesource_code:<class 'str'>attributes:dict[str, typing.Any] | Noneproject_id:<class 'str'>wb_user_id:str | None
class ModelCreateRes
Pydantic Fields:
digest:<class 'str'>object_id:<class 'str'>version_index:<class 'int'>model_ref:<class 'str'>
class ModelDeleteReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digests:list[str] | Nonewb_user_id:str | None
class ModelDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class ModelListReq
Pydantic Fields:
project_id:<class 'str'>limit:int | Noneoffset:int | None
class ModelReadReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>
class ModelReadRes
Pydantic Fields:
object_id:<class 'str'>digest:<class 'str'>version_index:<class 'int'>created_at:<class 'datetime.datetime'>name:<class 'str'>description:str | Nonesource_code:<class 'str'>attributes:dict[str, typing.Any] | None
class OTelExportReq
Pydantic Fields:
processed_spans:list[ProcessedResourceSpans]project_id:<class 'str'>wb_user_id:str | None
class OTelExportRes
Pydantic Fields:
partial_success:ExportTracePartialSuccess | None
class ObjAddTagsReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>tags:list[str]wb_user_id:str | None
method validate_tags
class ObjAddTagsRes
class ObjCreateReq
Pydantic Fields:
obj:<class 'ObjSchemaForInsert'>
class ObjCreateRes
Pydantic Fields:
digest:<class 'str'>object_id:str | None
class ObjDeleteReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digests:list[str] | None
class ObjDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class ObjQueryReq
Pydantic Fields:
project_id:<class 'str'>filter:ObjectVersionFilter | Nonelimit:int | Noneoffset:int | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | Nonemetadata_only:bool | Noneinclude_storage_size:bool | Noneinclude_tags_and_aliases:bool | None
class ObjQueryRes
Pydantic Fields:
objs:list[ObjSchema]
class ObjReadReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>metadata_only:bool | Noneinclude_tags_and_aliases:bool | None
class ObjReadRes
Pydantic Fields:
obj:<class 'ObjSchema'>
class ObjRemoveAliasesReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>aliases:list[str]wb_user_id:str | None
method validate_aliases
class ObjRemoveAliasesRes
class ObjRemoveTagsReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>tags:list[str]wb_user_id:str | None
class ObjRemoveTagsRes
class ObjSchema
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>created_at:<class 'datetime.datetime'>deleted_at:datetime.datetime | Nonedigest:<class 'str'>version_index:<class 'int'>is_latest:<class 'int'>kind:<class 'str'>base_object_class:str | Noneleaf_object_class:str | Noneval:typing.Anywb_user_id:str | Nonesize_bytes:int | Nonetags:list[str] | Nonealiases:list[str] | None
class ObjSchemaForInsert
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>val:typing.Anybuiltin_object_class:str | Noneset_base_object_class:str | Noneexpected_digest:str | Nonewb_user_id:str | None
method model_post_init
class ObjSetAliasesReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>aliases:list[str]wb_user_id:str | None
method validate_aliases
class ObjSetAliasesRes
class ObjectInterface
Object API endpoints for Trace Server.
This protocol contains object management APIs that provide cleaner, more RESTful interfaces. Implementations should support both this protocol and TraceServerInterface to maintain backward compatibility.
method call_end_v2
method call_start_v2
method calls_complete
method dataset_create
method dataset_delete
method dataset_list
method dataset_read
method eval_results_query
method evaluation_create
method evaluation_delete
method evaluation_list
method evaluation_read
method evaluation_run_create
method evaluation_run_delete
method evaluation_run_finish
method evaluation_run_list
method evaluation_run_read
method model_create
method model_delete
method model_list
method model_read
method op_create
method op_delete
method op_list
method op_read
method prediction_create
method prediction_delete
method prediction_finish
method prediction_list
method prediction_read
method score_create
method score_delete
method score_list
method score_read
method scorer_create
method scorer_delete
method scorer_list
method scorer_read
class ObjectVersionFilter
Pydantic Fields:
base_object_classes:list[str] | Noneexclude_base_object_classes:list[str] | Noneleaf_object_classes:list[str] | Noneobject_ids:list[str] | Noneis_op:bool | Nonelatest_only:bool | Nonetags:list[str] | Nonealiases:list[str] | None
class OpCreateBody
Request body for creating an Op object via REST API.
This model excludes project_id since it comes from the URL path in RESTful endpoints.
Pydantic Fields:
name:str | Nonesource_code:str | None
class OpCreateReq
Request model for creating an Op object.
Extends OpCreateBody by adding project_id for internal API usage.
Pydantic Fields:
name:str | Nonesource_code:str | Noneproject_id:<class 'str'>wb_user_id:str | None
class OpCreateRes
Response model for creating an Op object.
Pydantic Fields:
digest:<class 'str'>object_id:<class 'str'>version_index:<class 'int'>
class OpDeleteReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digests:list[str] | Nonewb_user_id:str | None
class OpDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class OpListReq
Pydantic Fields:
project_id:<class 'str'>limit:int | Noneoffset:int | Nonewb_user_id:str | None
class OpReadReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>wb_user_id:str | None
class OpReadRes
Response model for reading an Op object.
The code field contains the actual source code of the op.
Pydantic Fields:
object_id:<class 'str'>digest:<class 'str'>version_index:<class 'int'>created_at:<class 'datetime.datetime'>code:<class 'str'>
class PredictionCreateBody
Request body for creating a Prediction via REST API.
This model excludes project_id since it comes from the URL path in RESTful endpoints.
Pydantic Fields:
model:<class 'str'>inputs:dict[str, typing.Any]output:typing.Anyevaluation_run_id:str | None
class PredictionCreateReq
Request model for creating a Prediction.
Extends PredictionCreateBody by adding project_id for internal API usage.
Pydantic Fields:
model:<class 'str'>inputs:dict[str, typing.Any]output:typing.Anyevaluation_run_id:str | Noneproject_id:<class 'str'>wb_user_id:str | None
class PredictionCreateRes
Pydantic Fields:
prediction_id:<class 'str'>
class PredictionDeleteReq
Pydantic Fields:
project_id:<class 'str'>prediction_ids:list[str]wb_user_id:str | None
class PredictionDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class PredictionFinishReq
Pydantic Fields:
project_id:<class 'str'>prediction_id:<class 'str'>wb_user_id:str | None
class PredictionFinishRes
Pydantic Fields:
success:<class 'bool'>
class PredictionListReq
Pydantic Fields:
project_id:<class 'str'>evaluation_run_id:str | Nonelimit:int | Noneoffset:int | Nonewb_user_id:str | None
class PredictionListRes
Pydantic Fields:
predictions:list[PredictionReadRes]
class PredictionReadReq
Pydantic Fields:
project_id:<class 'str'>prediction_id:<class 'str'>wb_user_id:str | None
class PredictionReadRes
Pydantic Fields:
prediction_id:<class 'str'>model:<class 'str'>inputs:dict[str, typing.Any]output:typing.Anyevaluation_run_id:str | Nonewb_user_id:str | None
class ProcessedResourceSpans
Pydantic Fields:
entity:<class 'str'>project:<class 'str'>run_id:str | Noneresource_spans:typing.Any
class ProjectStatsReq
Pydantic Fields:
project_id:<class 'str'>include_trace_storage_size:bool | Noneinclude_object_storage_size:bool | Noneinclude_table_storage_size:bool | Noneinclude_file_storage_size:bool | None
class ProjectStatsRes
Pydantic Fields:
trace_storage_size_bytes:<class 'int'>objects_storage_size_bytes:<class 'int'>tables_storage_size_bytes:<class 'int'>files_storage_size_bytes:<class 'int'>
class RefsReadBatchReq
Pydantic Fields:
refs:list[str]
class RefsReadBatchRes
Pydantic Fields:
vals:list[typing.Any]
class ScoreCreateBody
Request body for creating a Score via REST API.
This model excludes project_id since it comes from the URL path in RESTful endpoints.
Pydantic Fields:
prediction_id:<class 'str'>scorer:<class 'str'>value:<class 'float'>evaluation_run_id:str | None
class ScoreCreateReq
Request model for creating a Score.
Extends ScoreCreateBody by adding project_id for internal API usage.
Pydantic Fields:
prediction_id:<class 'str'>scorer:<class 'str'>value:<class 'float'>evaluation_run_id:str | Noneproject_id:<class 'str'>wb_user_id:str | None
class ScoreCreateRes
Pydantic Fields:
score_id:<class 'str'>
class ScoreDeleteReq
Pydantic Fields:
project_id:<class 'str'>score_ids:list[str]wb_user_id:str | None
class ScoreDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class ScoreListReq
Pydantic Fields:
project_id:<class 'str'>evaluation_run_id:str | Nonelimit:int | Noneoffset:int | Nonewb_user_id:str | None
class ScoreReadReq
Pydantic Fields:
project_id:<class 'str'>score_id:<class 'str'>wb_user_id:str | None
class ScoreReadRes
Pydantic Fields:
score_id:<class 'str'>scorer:<class 'str'>value:<class 'float'>evaluation_run_id:str | Nonewb_user_id:str | None
class ScorerCreateBody
Pydantic Fields:
name:<class 'str'>description:str | Noneop_source_code:<class 'str'>
class ScorerCreateReq
Pydantic Fields:
name:<class 'str'>description:str | Noneop_source_code:<class 'str'>project_id:<class 'str'>wb_user_id:str | None
class ScorerCreateRes
Pydantic Fields:
digest:<class 'str'>object_id:<class 'str'>version_index:<class 'int'>scorer:<class 'str'>
class ScorerDeleteReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digests:list[str] | Nonewb_user_id:str | None
class ScorerDeleteRes
Pydantic Fields:
num_deleted:<class 'int'>
class ScorerListReq
Pydantic Fields:
project_id:<class 'str'>limit:int | Noneoffset:int | Nonewb_user_id:str | None
class ScorerReadReq
Pydantic Fields:
project_id:<class 'str'>object_id:<class 'str'>digest:<class 'str'>wb_user_id:str | None
class ScorerReadRes
Pydantic Fields:
object_id:<class 'str'>digest:<class 'str'>version_index:<class 'int'>created_at:<class 'datetime.datetime'>name:<class 'str'>description:str | Nonescore_op:<class 'str'>
class StartedCallSchemaForInsert
Pydantic Fields:
project_id:<class 'str'>id:str | Noneop_name:<class 'str'>display_name:str | Nonetrace_id:str | Noneparent_id:str | Nonethread_id:str | Noneturn_id:str | Nonestarted_at:<class 'datetime.datetime'>attributes:dict[str, typing.Any]inputs:dict[str, typing.Any]otel_dump:dict[str, typing.Any] | Nonewb_user_id:str | Nonewb_run_id:str | Nonewb_run_step:int | None
class SummaryInsertMap
class SummaryMap
class TableAppendSpec
Pydantic Fields:
append:<class 'TableAppendSpecPayload'>
class TableAppendSpecPayload
Pydantic Fields:
row:dict[str, typing.Any]
class TableCreateFromDigestsReq
Pydantic Fields:
project_id:<class 'str'>row_digests:list[str]expected_digest:str | None
class TableCreateFromDigestsRes
Pydantic Fields:
digest:<class 'str'>
class TableCreateReq
Pydantic Fields:
table:<class 'TableSchemaForInsert'>
class TableCreateRes
Pydantic Fields:
digest:<class 'str'>row_digests:list[str]
class TableInsertSpec
Pydantic Fields:
insert:<class 'TableInsertSpecPayload'>
class TableInsertSpecPayload
Pydantic Fields:
index:<class 'int'>row:dict[str, typing.Any]
class TablePopSpec
Pydantic Fields:
pop:<class 'TablePopSpecPayload'>
class TablePopSpecPayload
Pydantic Fields:
index:<class 'int'>
class TableQueryReq
Pydantic Fields:
project_id:<class 'str'>digest:<class 'str'>filter:TableRowFilter | Nonelimit:int | Noneoffset:int | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | None
class TableQueryRes
Pydantic Fields:
rows:list[TableRowSchema]
class TableQueryStatsBatchReq
Pydantic Fields:
project_id:<class 'str'>digests:list[str] | Noneinclude_storage_size:bool | None
class TableQueryStatsBatchRes
Pydantic Fields:
tables:list[TableStatsRow]
class TableQueryStatsReq
Pydantic Fields:
project_id:<class 'str'>digest:<class 'str'>
class TableQueryStatsRes
Pydantic Fields:
count:<class 'int'>
class TableRowFilter
Pydantic Fields:
row_digests:list[str] | None
class TableRowSchema
Pydantic Fields:
digest:<class 'str'>val:typing.Anyoriginal_index:int | None
class TableSchemaForInsert
Pydantic Fields:
project_id:<class 'str'>rows:list[dict[str, typing.Any]]expected_digest:str | None
class TableStatsRow
Pydantic Fields:
count:<class 'int'>digest:<class 'str'>storage_size_bytes:int | None
class TableUpdateReq
Pydantic Fields:
project_id:<class 'str'>base_digest:<class 'str'>updates:list[TableAppendSpec | TablePopSpec | TableInsertSpec]
class TableUpdateRes
Pydantic Fields:
digest:<class 'str'>updated_row_digests:list[str]
class TagsListReq
Pydantic Fields:
project_id:<class 'str'>wb_user_id:str | None
class TagsListRes
Pydantic Fields:
tags:list[str]
class ThreadSchema
Pydantic Fields:
thread_id:<class 'str'>turn_count:<class 'int'>start_time:<class 'datetime.datetime'>last_updated:<class 'datetime.datetime'>first_turn_id:str | Nonelast_turn_id:str | Nonep50_turn_duration_ms:float | Nonep99_turn_duration_ms:float | None
class ThreadsQueryFilter
Pydantic Fields:
after_datetime:datetime.datetime | Nonebefore_datetime:datetime.datetime | Nonethread_ids:list[str] | None
class ThreadsQueryReq
Query threads with aggregated statistics based on turn calls only.
Turn calls are the immediate children of thread contexts (where call.id == turn_id). This provides meaningful conversation-level statistics rather than including all nested implementation details.
Pydantic Fields:
project_id:<class 'str'>filter:ThreadsQueryFilter | Nonelimit:int | Noneoffset:int | Nonesort_by:list[weave.trace_server.common_interface.SortBy] | None
class TraceServerInterface
method actions_execute_batch
method aliases_list
method annotation_queue_add_calls
method annotation_queue_create
method annotation_queue_delete
method annotation_queue_items_query
method annotation_queue_read
method annotation_queue_update
method annotation_queues_query_stream
method annotation_queues_stats
method annotator_queue_items_progress_update
method call_end
method call_read
method call_start
method call_start_batch
method call_stats
method call_update
method calls_delete
method calls_query
method calls_query_stats
method calls_query_stream
method calls_score
method calls_usage
method completions_create
method completions_create_stream
method cost_create
method cost_purge
method cost_query
method evaluate_model
method evaluation_status
method feedback_create
method feedback_create_batch
method feedback_payload_schema
method feedback_purge
method feedback_query
method feedback_replace
method feedback_stats
method file_content_read
method file_create
method files_stats
method image_create
method obj_add_tags
method obj_create
method obj_delete
method obj_read
method obj_remove_aliases
method obj_remove_tags
method obj_set_aliases
method objs_query
method otel_export
method project_stats
method refs_read_batch
method table_create
method table_create_from_digests
method table_query
method table_query_stats
method table_query_stats_batch
method table_query_stream
method table_update
method tags_list
method threads_query_stream
method trace_usage
class TraceStatus
class TraceUsageReq
Request to compute per-call usage for a trace, with descendant rollup.
This endpoint returns usage metrics for each call in the trace, where each call’s metrics include the sum of its own usage plus all descendants’ usage. Use this for trace view where you want to see rolled-up metrics per call.
Note: All matching calls are loaded into memory for aggregation. For very large result sets (>10k calls), consider using more specific filters or pagination at the application layer.
Pydantic Fields:
project_id:<class 'str'>filter:CallsFilter | Nonequery:weave.trace_server.interface.query.Query | Noneinclude_costs:<class 'bool'>limit:<class 'int'>
class TraceUsageRes
Response with per-call usage metrics (each includes descendant contributions).
Pydantic Fields:
call_usage:dict[str, dict[str, LLMAggregatedUsage]]unfinished_call_ids:list[str]
class UsageMetricSpec
Specification for a usage metric to aggregate (grouped by model).
Pydantic Fields:
metric:typing.Literal['input_tokens', 'output_tokens', 'total_tokens', 'input_cost', 'output_cost', 'total_cost']aggregations:list[AggregationType]percentiles:list[float]