Data Models Reference

Complete reference for all data models, request/response classes, and enums.

Core Models

This section documents all data models used throughout the HoneyHive SDK.

Public Models

All request and response models are re-exported from honeyhive.models.

HoneyHive Models - Re-exported from auto-generated Pydantic models.

Usage:

from honeyhive.models import CreateConfigurationRequest, CreateDatasetRequest, EventType

class honeyhive.models.CreateConfigurationRequest(*, name, type=None, provider, parameters, env=None, tags=None, user_properties=None)[source]

Bases: BaseModel

CreateConfigurationRequest model

Parameters:
  • name (str)

  • type (str | None)

  • provider (str)

  • parameters (ConfigurationParameters)

  • env (List[str] | None)

  • tags (List[str] | None)

  • user_properties (Dict[str, Any] | None)

name: str
type: str | None
provider: str
parameters: ConfigurationParameters
env: List[str] | None
tags: List[str] | None
user_properties: Dict[str, Any] | None
class honeyhive.models.CreateConfigurationResponse(*, acknowledged, insertedId)[source]

Bases: BaseModel

CreateConfigurationResponse model

Parameters:
  • acknowledged (bool)

  • insertedId (str)

acknowledged: bool
insertedId: str
class honeyhive.models.DeleteConfigurationResponse(*, acknowledged, deletedCount)[source]

Bases: BaseModel

DeleteConfigurationResponse model

Parameters:
acknowledged: bool
deletedCount: float
class honeyhive.models.GetConfigurationsQuery(*, name=None, env=None, tags=None)[source]

Bases: BaseModel

GetConfigurationsQuery model

Parameters:
  • name (str | None)

  • env (str | None)

  • tags (str | None)

name: str | None
env: str | None
tags: str | None
class honeyhive.models.GetConfigurationsResponse[source]

Bases: BaseModel

GetConfigurationsResponse model

class honeyhive.models.UpdateConfigurationRequest(*, name, type=None, provider=None, parameters=None, env=None, tags=None, user_properties=None)[source]

Bases: BaseModel

UpdateConfigurationRequest model

Parameters:
  • name (str)

  • type (str | None)

  • provider (str | None)

  • parameters (ConfigurationParameters | None)

  • env (List[str] | None)

  • tags (List[str] | None)

  • user_properties (Dict[str, Any] | None)

name: str
type: str | None
provider: str | None
parameters: ConfigurationParameters | None
env: List[str] | None
tags: List[str] | None
user_properties: Dict[str, Any] | None
class honeyhive.models.UpdateConfigurationResponse(*, acknowledged, modifiedCount, upsertedId, upsertedCount, matchedCount)[source]

Bases: BaseModel

UpdateConfigurationResponse model

Parameters:
  • acknowledged (bool)

  • modifiedCount (float)

  • upsertedId (None)

  • upsertedCount (float)

  • matchedCount (float)

acknowledged: bool
modifiedCount: float
upsertedId: None
upsertedCount: float
matchedCount: float
class honeyhive.models.BatchCreateDatapointsRequest(*, events=None, mapping=None, filters=None, dateRange=None, checkState=None, selectAll=None, dataset_id=None)[source]

Bases: BaseModel

BatchCreateDatapointsRequest model

Parameters:
events: List[str] | None
mapping: DatapointMapping | None
filters: Dict[str, Any] | List[Dict[str, Any]] | None
dateRange: BatchDateRange | None
checkState: CheckState | None
selectAll: bool | None
dataset_id: str | None
class honeyhive.models.BatchCreateDatapointsResponse(*, inserted, insertedIds)[source]

Bases: BaseModel

BatchCreateDatapointsResponse model

Parameters:
inserted: bool
insertedIds: List[str]
class honeyhive.models.CreateDatapointRequest(*, inputs=None, history=None, ground_truth=None, metadata=None, linked_event=None, linked_datasets=None)[source]

Bases: BaseModel

CreateDatapointRequest model

Parameters:
inputs: Dict[str, Any] | None
history: List[Dict[str, Any]] | None
ground_truth: Dict[str, Any] | None
metadata: Dict[str, Any] | None
linked_event: str | None
linked_datasets: List[str] | None
class honeyhive.models.CreateDatapointResponse(*, inserted, result)[source]

Bases: BaseModel

CreateDatapointResponse model

Parameters:
inserted: bool
result: Dict[str, Any]
class honeyhive.models.DeleteDatapointParams(*, datapoint_id)[source]

Bases: BaseModel

DeleteDatapointParams model

Parameters:

datapoint_id (str)

datapoint_id: str
class honeyhive.models.DeleteDatapointResponse(*, deleted)[source]

Bases: BaseModel

DeleteDatapointResponse model

Parameters:

deleted (bool)

deleted: bool
class honeyhive.models.GetDatapointParams(*, id)[source]

Bases: BaseModel

GetDatapointParams model

Parameters:

id (str)

id: str
class honeyhive.models.GetDatapointResponse(*, datapoint)[source]

Bases: BaseModel

GetDatapointResponse model

Parameters:

datapoint (List[Datapoint])

datapoint: List[Datapoint]
class honeyhive.models.GetDatapointsQuery(*, datapoint_ids=None, dataset_name=None)[source]

Bases: BaseModel

GetDatapointsQuery model

Parameters:
  • datapoint_ids (List[str] | None)

  • dataset_name (str | None)

datapoint_ids: List[str] | None
dataset_name: str | None
class honeyhive.models.GetDatapointsResponse(*, datapoints)[source]

Bases: BaseModel

GetDatapointsResponse model

Parameters:

datapoints (List[Datapoint])

datapoints: List[Datapoint]
class honeyhive.models.UpdateDatapointParams(*, datapoint_id)[source]

Bases: BaseModel

UpdateDatapointParams model

Parameters:

datapoint_id (str)

datapoint_id: str
class honeyhive.models.UpdateDatapointRequest(*, inputs=None, history=None, ground_truth=None, metadata=None, linked_event=None, linked_datasets=None)[source]

Bases: BaseModel

UpdateDatapointRequest model

Parameters:
inputs: Dict[str, Any] | None
history: List[Dict[str, Any]] | None
ground_truth: Dict[str, Any] | None
metadata: Dict[str, Any] | None
linked_event: str | None
linked_datasets: List[str] | None
class honeyhive.models.UpdateDatapointResponse(*, updated, result)[source]

Bases: BaseModel

UpdateDatapointResponse model

Parameters:
updated: bool
result: Dict[str, Any]
class honeyhive.models.AddDatapointsResponse(*, inserted, datapoint_ids)[source]

Bases: BaseModel

AddDatapointsResponse model

Parameters:
inserted: bool
datapoint_ids: List[str]
class honeyhive.models.AddDatapointsToDatasetRequest(*, data, mapping)[source]

Bases: BaseModel

AddDatapointsToDatasetRequest model

Parameters:
data: List[Dict[str, Any]]
mapping: DatapointMapping
class honeyhive.models.CreateDatasetRequest(*, name, description=None, datapoints=None)[source]

Bases: BaseModel

CreateDatasetRequest model

Parameters:
  • name (str)

  • description (str | None)

  • datapoints (List[str] | None)

name: str
description: str | None
datapoints: List[str] | None
class honeyhive.models.DatapointMapping(*, inputs=None, history=None, ground_truth=None)[source]

Bases: BaseModel

DatapointMapping model

Parameters:
inputs: List[str] | None
history: List[str] | None
ground_truth: List[str] | None
class honeyhive.models.CreateDatasetResponse(*, inserted, result)[source]

Bases: BaseModel

CreateDatasetResponse model

Parameters:
  • inserted (bool)

  • result (InsertResult)

inserted: bool
result: InsertResult
class honeyhive.models.DeleteDatasetQuery(*, dataset_id)[source]

Bases: BaseModel

DeleteDatasetQuery model

Parameters:

dataset_id (str)

dataset_id: str
class honeyhive.models.DeleteDatasetResponse(*, result)[source]

Bases: BaseModel

DeleteDatasetResponse model

Parameters:

result (DeleteResult)

result: DeleteResult
class honeyhive.models.GetDatasetsQuery(*, dataset_id=None, name=None, include_datapoints=None)[source]

Bases: BaseModel

GetDatasetsQuery model

Parameters:
  • dataset_id (str | None)

  • name (str | None)

  • include_datapoints (bool | str | None)

dataset_id: str | None
name: str | None
include_datapoints: bool | str | None
class honeyhive.models.GetDatasetsResponse(*, datasets)[source]

Bases: BaseModel

GetDatasetsResponse model

Parameters:

datasets (List[Dataset])

datasets: List[Dataset]
class honeyhive.models.RemoveDatapointFromDatasetParams(*, dataset_id, datapoint_id)[source]

Bases: BaseModel

RemoveDatapointFromDatasetParams model

Parameters:
  • dataset_id (str)

  • datapoint_id (str)

dataset_id: str
datapoint_id: str
class honeyhive.models.RemoveDatapointResponse(*, dereferenced, message)[source]

Bases: BaseModel

RemoveDatapointResponse model

Parameters:
  • dereferenced (bool)

  • message (str)

dereferenced: bool
message: str
class honeyhive.models.UpdateDatasetRequest(*, dataset_id, name=None, description=None, datapoints=None)[source]

Bases: BaseModel

UpdateDatasetRequest model

Parameters:
  • dataset_id (str)

  • name (str | None)

  • description (str | None)

  • datapoints (List[str] | None)

dataset_id: str
name: str | None
description: str | None
datapoints: List[str] | None
class honeyhive.models.UpdateDatasetResponse(*, result)[source]

Bases: BaseModel

UpdateDatasetResponse model

Parameters:

result (Dataset)

result: Dataset
class honeyhive.models.DeleteEventParams(*, event_id)[source]

Bases: BaseModel

DeleteEventParams model

Path parameters for DELETE /events/:event_id

Parameters:

event_id (str)

event_id: str
class honeyhive.models.DeleteEventResponse(*, success, deleted)[source]

Bases: BaseModel

DeleteEventResponse model

Response for DELETE /events/:event_id

Parameters:
success: bool
deleted: str
class honeyhive.models.Event(*, event_id, project_id, tenant, event_name=None, event_type=None, metrics=None, metadata=None, feedback=None)[source]

Bases: BaseModel

Event model

Parameters:
event_id: str
project_id: str
tenant: str
event_name: str | None
event_type: str | None
metrics: Dict[str, Any] | None
metadata: Dict[str, Any] | None
feedback: Dict[str, Any] | None
class honeyhive.models.GetEventsBySessionIdParams(*, session_id)[source]

Bases: BaseModel

GetEventsBySessionIdParams model

Path parameters for GET /events/:session_id

Parameters:

session_id (str)

session_id: str
class honeyhive.models.GetEventsBySessionIdResponse(*, event_id, event_type, event_name, children, start_time, end_time, duration, metadata, parent_id=None, session_id=None, children_ids=None, config=None, inputs=None, outputs=None, error=None, source=None, user_properties=None, metrics=None, feedback=None, org_id, workspace_id=None, project_id)[source]

Bases: BaseModel

GetEventsBySessionIdResponse model

Event node in session tree with nested children

Parameters:
  • event_id (str)

  • event_type (str)

  • event_name (str)

  • children (List[Any])

  • start_time (float)

  • end_time (float)

  • duration (float)

  • metadata (Dict[str, Any])

  • parent_id (str | None)

  • session_id (str | None)

  • children_ids (List[str] | None)

  • config (Any | None)

  • inputs (Any | None)

  • outputs (Any | None)

  • error (str | None)

  • source (str | None)

  • user_properties (Any | None)

  • metrics (Any | None)

  • feedback (Any | None)

  • org_id (str)

  • workspace_id (str | None)

  • project_id (str)

event_id: str
event_type: str
event_name: str
children: List[Any]
start_time: float
end_time: float
duration: float
metadata: Dict[str, Any]
parent_id: str | None
session_id: str | None
children_ids: List[str] | None
config: Any | None
inputs: Any | None
outputs: Any | None
error: str | None
source: str | None
user_properties: Any | None
metrics: Any | None
feedback: Any | None
org_id: str
workspace_id: str | None
project_id: str
class honeyhive.models.GetEventsChartQuery(*, dateRange=None, filters=None, metric=None, groupBy=None, bucket=None, aggregation=None, evaluation_id=None, only_experiments=None)[source]

Bases: BaseModel

GetEventsChartQuery model

Query parameters for GET /events/chart

Parameters:
  • dateRange (DateRange | None)

  • filters (FiltersArray | None)

  • metric (str | None)

  • groupBy (str | None)

  • bucket (str | None)

  • aggregation (str | None)

  • evaluation_id (str | None)

  • only_experiments (bool | None)

dateRange: DateRange | None
filters: FiltersArray | None
metric: str | None
groupBy: str | None
bucket: str | None
aggregation: str | None
evaluation_id: str | None
only_experiments: bool | None
class honeyhive.models.GetEventsChartResponse(*, events, totalEvents)[source]

Bases: BaseModel

GetEventsChartResponse model

Chart data response for events

Parameters:
events: List[Any]
totalEvents: float
class honeyhive.models.GetEventsQuery(*, dateRange=None, filters=None, projections=None, ignore_order=None, limit=None, page=None, evaluation_id=None)[source]

Bases: BaseModel

GetEventsQuery model

Query parameters for GET /events

Parameters:
  • dateRange (DateRange | None)

  • filters (FiltersArray | None)

  • projections (List[str] | None)

  • ignore_order (bool | None)

  • limit (float | None)

  • page (float | None)

  • evaluation_id (str | None)

dateRange: DateRange | None
filters: FiltersArray | None
projections: List[str] | None
ignore_order: bool | None
limit: float | None
page: float | None
evaluation_id: str | None
class honeyhive.models.GetEventsResponse(*, events, totalEvents)[source]

Bases: BaseModel

GetEventsResponse model

Parameters:
events: List[Any]
totalEvents: float
class honeyhive.models.PostEventRequest(*, event)[source]

Bases: BaseModel

PostEventRequest model

Request to create a new event

Parameters:

event (Dict[str, Any])

event: Dict[str, Any]
class honeyhive.models.PostEventResponse(*, success, event_id=None)[source]

Bases: BaseModel

PostEventResponse model

Response after creating an event

Parameters:
  • success (bool)

  • event_id (str | None)

success: bool
event_id: str | None
class honeyhive.models.DeleteExperimentRunParams(*, run_id)[source]

Bases: BaseModel

DeleteExperimentRunParams model

Parameters:

run_id (str)

run_id: str
class honeyhive.models.DeleteExperimentRunResponse(*, id, deleted)[source]

Bases: BaseModel

DeleteExperimentRunResponse model

Parameters:
id: str
deleted: bool
class honeyhive.models.GetExperimentRunCompareEventsQuery(*, run_id_1, run_id_2, event_name=None, event_type=None, filter=None, limit=None, page=None)[source]

Bases: BaseModel

GetExperimentRunCompareEventsQuery model

Parameters:
run_id_1: str
run_id_2: str
event_name: str | None
event_type: str | None
filter: str | Dict[str, Any] | None
limit: int | None
page: int | None
class honeyhive.models.GetExperimentRunCompareParams(*, new_run_id, old_run_id)[source]

Bases: BaseModel

GetExperimentRunCompareParams model

Parameters:
  • new_run_id (str)

  • old_run_id (str)

new_run_id: str
old_run_id: str
class honeyhive.models.GetExperimentRunCompareQuery(*, aggregate_function=None, filters=None)[source]

Bases: BaseModel

GetExperimentRunCompareQuery model

Parameters:
  • aggregate_function (str | None)

  • filters (str | List[Any] | None)

aggregate_function: str | None
filters: str | List[Any] | None
class honeyhive.models.GetExperimentRunMetricsQuery(*, dateRange=None, filters=None)[source]

Bases: BaseModel

GetExperimentRunMetricsQuery model

Parameters:
dateRange: str | None
filters: str | List[Any] | None
class honeyhive.models.GetExperimentRunParams(*, run_id)[source]

Bases: BaseModel

GetExperimentRunParams model

Parameters:

run_id (str)

run_id: str
class honeyhive.models.GetExperimentRunResponse(*, evaluation=None)[source]

Bases: BaseModel

GetExperimentRunResponse model

Parameters:

evaluation (Any | None)

evaluation: Any | None
class honeyhive.models.GetExperimentRunResultQuery(*, aggregate_function=None, filters=None)[source]

Bases: BaseModel

GetExperimentRunResultQuery model

Parameters:
  • aggregate_function (str | None)

  • filters (str | List[Any] | None)

aggregate_function: str | None
filters: str | List[Any] | None
class honeyhive.models.GetExperimentRunsQuery(*, dataset_id=None, page=None, limit=None, run_ids=None, name=None, status=None, dateRange=None, sort_by=None, sort_order=None)[source]

Bases: BaseModel

GetExperimentRunsQuery model

Parameters:
  • dataset_id (str | None)

  • page (int | None)

  • limit (int | None)

  • run_ids (List[str] | None)

  • name (str | None)

  • status (str | None)

  • dateRange (str | AbsoluteDateRange | None)

  • sort_by (str | None)

  • sort_order (str | None)

dataset_id: str | None
page: int | None
limit: int | None
run_ids: List[str] | None
name: str | None
status: str | None
dateRange: str | AbsoluteDateRange | None
sort_by: str | None
sort_order: str | None
class honeyhive.models.GetExperimentRunsResponse(*, evaluations, pagination, metrics)[source]

Bases: BaseModel

GetExperimentRunsResponse model

Parameters:
evaluations: List[Any]
pagination: Pagination
metrics: List[str]
class honeyhive.models.GetExperimentRunsSchemaQuery(*, dateRange=None, evaluation_id=None)[source]

Bases: BaseModel

GetExperimentRunsSchemaQuery model

Parameters:
  • dateRange (str | AbsoluteDateRange | None)

  • evaluation_id (str | None)

dateRange: str | AbsoluteDateRange | None
evaluation_id: str | None
class honeyhive.models.GetExperimentRunsSchemaResponse(*, fields, datasets, mappings)[source]

Bases: BaseModel

GetExperimentRunsSchemaResponse model

Parameters:
fields: List[ExperimentSchemaField]
datasets: List[str]
mappings: Dict[str, Any]
class honeyhive.models.PostExperimentRunRequest(*, name=None, description=None, status=None, metadata=None, results=None, dataset_id=None, event_ids=None, configuration=None, evaluators=None, session_ids=None, datapoint_ids=None, passing_ranges=None)[source]

Bases: BaseModel

PostExperimentRunRequest model

Parameters:
name: str | None
description: str | None
status: str | None
metadata: Dict[str, Any] | None
results: Dict[str, Any] | None
dataset_id: str | None
event_ids: List[str] | None
configuration: Dict[str, Any] | None
evaluators: List[Any] | None
session_ids: List[str] | None
datapoint_ids: List[str] | None
passing_ranges: Dict[str, Any] | None
class honeyhive.models.PostExperimentRunResponse(*, evaluation=None, run_id)[source]

Bases: BaseModel

PostExperimentRunResponse model

Parameters:
  • evaluation (Any | None)

  • run_id (str)

evaluation: Any | None
run_id: str
class honeyhive.models.PutExperimentRunRequest(*, name=None, description=None, status=None, metadata=None, results=None, event_ids=None, configuration=None, evaluators=None, session_ids=None, datapoint_ids=None, passing_ranges=None)[source]

Bases: BaseModel

PutExperimentRunRequest model

Parameters:
name: str | None
description: str | None
status: str | None
metadata: Dict[str, Any] | None
results: Dict[str, Any] | None
event_ids: List[str] | None
configuration: Dict[str, Any] | None
evaluators: List[Any] | None
session_ids: List[str] | None
datapoint_ids: List[str] | None
passing_ranges: Dict[str, Any] | None
class honeyhive.models.PutExperimentRunResponse(*, evaluation=None, warning=None)[source]

Bases: BaseModel

PutExperimentRunResponse model

Parameters:
  • evaluation (Any | None)

  • warning (str | None)

evaluation: Any | None
warning: str | None
class honeyhive.models.CreateMetricRequest(*, name, type, criteria, description=None, return_type=None, enabled_in_prod=None, needs_ground_truth=None, sampling_percentage=None, model_provider=None, model_name=None, scale=None, threshold=None, categories=None, child_metrics=None, filters=None)[source]

Bases: BaseModel

CreateMetricRequest model

Parameters:
  • name (str)

  • type (str)

  • criteria (str)

  • description (str | None)

  • return_type (str | None)

  • enabled_in_prod (bool | None)

  • needs_ground_truth (bool | None)

  • sampling_percentage (float | None)

  • model_provider (str | None)

  • model_name (str | None)

  • scale (int | None)

  • threshold (Dict[str, Any] | None)

  • categories (List[Any] | None)

  • child_metrics (List[Any] | None)

  • filters (Dict[str, Any] | None)

name: str
type: str
criteria: str
description: str | None
return_type: str | None
enabled_in_prod: bool | None
needs_ground_truth: bool | None
sampling_percentage: float | None
model_provider: str | None
model_name: str | None
scale: int | None
threshold: Dict[str, Any] | None
categories: List[Any] | None
child_metrics: List[Any] | None
filters: Dict[str, Any] | None
class honeyhive.models.CreateMetricResponse(*, inserted, metric_id)[source]

Bases: BaseModel

CreateMetricResponse model

Parameters:
inserted: bool
metric_id: str
class honeyhive.models.DeleteMetricQuery(*, metric_id)[source]

Bases: BaseModel

DeleteMetricQuery model

Parameters:

metric_id (str)

metric_id: str
class honeyhive.models.DeleteMetricResponse(*, deleted)[source]

Bases: BaseModel

DeleteMetricResponse model

Parameters:

deleted (bool)

deleted: bool
class honeyhive.models.GetMetricsQuery(*, type=None, id=None)[source]

Bases: BaseModel

GetMetricsQuery model

Parameters:
  • type (str | None)

  • id (str | None)

type: str | None
id: str | None
class honeyhive.models.GetMetricsResponse[source]

Bases: BaseModel

GetMetricsResponse model

class honeyhive.models.RunMetricRequest(*, metric, event=None)[source]

Bases: BaseModel

RunMetricRequest model

Parameters:
metric: Dict[str, Any]
event: Any | None
class honeyhive.models.RunMetricResponse[source]

Bases: BaseModel

RunMetricResponse model

class honeyhive.models.UpdateMetricRequest(*, name=None, type=None, criteria=None, description=None, return_type=None, enabled_in_prod=None, needs_ground_truth=None, sampling_percentage=None, model_provider=None, model_name=None, scale=None, threshold=None, categories=None, child_metrics=None, filters=None, id)[source]

Bases: BaseModel

UpdateMetricRequest model

Parameters:
  • name (str | None)

  • type (str | None)

  • criteria (str | None)

  • description (str | None)

  • return_type (str | None)

  • enabled_in_prod (bool | None)

  • needs_ground_truth (bool | None)

  • sampling_percentage (float | None)

  • model_provider (str | None)

  • model_name (str | None)

  • scale (int | None)

  • threshold (Dict[str, Any] | None)

  • categories (List[Any] | None)

  • child_metrics (List[Any] | None)

  • filters (Dict[str, Any] | None)

  • id (str)

name: str | None
type: str | None
criteria: str | None
description: str | None
return_type: str | None
enabled_in_prod: bool | None
needs_ground_truth: bool | None
sampling_percentage: float | None
model_provider: str | None
model_name: str | None
scale: int | None
threshold: Dict[str, Any] | None
categories: List[Any] | None
child_metrics: List[Any] | None
filters: Dict[str, Any] | None
id: str
class honeyhive.models.UpdateMetricResponse(*, updated)[source]

Bases: BaseModel

UpdateMetricResponse model

Parameters:

updated (bool)

updated: bool
class honeyhive.models.DeleteSessionResponse(*, success, deleted)[source]

Bases: BaseModel

DeleteSessionResponse model

Confirmation of session deletion

Parameters:
success: bool
deleted: str
class honeyhive.models.GetSessionResponse(*, event_id, event_type, event_name, children, start_time, end_time, duration, metadata, parent_id=None, session_id=None, children_ids=None, config=None, inputs=None, outputs=None, error=None, source=None, user_properties=None, metrics=None, feedback=None, org_id, workspace_id=None, project_id)[source]

Bases: BaseModel

GetSessionResponse model

Event node in session tree with nested children

Parameters:
  • event_id (str)

  • event_type (str)

  • event_name (str)

  • children (List[Any])

  • start_time (float)

  • end_time (float)

  • duration (float)

  • metadata (Dict[str, Any])

  • parent_id (str | None)

  • session_id (str | None)

  • children_ids (List[str] | None)

  • config (Any | None)

  • inputs (Any | None)

  • outputs (Any | None)

  • error (str | None)

  • source (str | None)

  • user_properties (Any | None)

  • metrics (Any | None)

  • feedback (Any | None)

  • org_id (str)

  • workspace_id (str | None)

  • project_id (str)

event_id: str
event_type: str
event_name: str
children: List[Any]
start_time: float
end_time: float
duration: float
metadata: Dict[str, Any]
parent_id: str | None
session_id: str | None
children_ids: List[str] | None
config: Any | None
inputs: Any | None
outputs: Any | None
error: str | None
source: str | None
user_properties: Any | None
metrics: Any | None
feedback: Any | None
org_id: str
workspace_id: str | None
project_id: str
class honeyhive.models.PostSessionRequest(*, event_id, project_id, tenant, event_name=None, event_type=None, metrics=None, metadata=None, feedback=None)[source]

Bases: BaseModel

PostSessionRequest model

Parameters:
event_id: str
project_id: str
tenant: str
event_name: str | None
event_type: str | None
metrics: Dict[str, Any] | None
metadata: Dict[str, Any] | None
feedback: Dict[str, Any] | None
class honeyhive.models.PostSessionStartResponse(*, event_id=None, session_id=None, parent_id=None, children_ids=None, event_type=None, event_name=None, config=None, inputs=None, outputs=None, error=None, source=None, duration=None, user_properties=None, metrics=None, feedback=None, metadata=None, org_id, workspace_id, project_id, start_time=None, end_time=None)[source]

Bases: BaseModel

PostSessionStartResponse model

Full session event object returned after starting a new session

Parameters:
  • event_id (str | None)

  • session_id (str | None)

  • parent_id (str | None)

  • children_ids (List[str] | None)

  • event_type (str | None)

  • event_name (str | None)

  • config (Any | None)

  • inputs (Any | None)

  • outputs (Any | None)

  • error (str | None)

  • source (str | None)

  • duration (float | None)

  • user_properties (Any | None)

  • metrics (Any | None)

  • feedback (Any | None)

  • metadata (Any | None)

  • org_id (str)

  • workspace_id (str)

  • project_id (str)

  • start_time (float | None)

  • end_time (float | None)

event_id: str | None
session_id: str | None
parent_id: str | None
children_ids: List[str] | None
event_type: str | None
event_name: str | None
config: Any | None
inputs: Any | None
outputs: Any | None
error: str | None
source: str | None
duration: float | None
user_properties: Any | None
metrics: Any | None
feedback: Any | None
metadata: Any | None
org_id: str
workspace_id: str
project_id: str
start_time: float | None
end_time: float | None
class honeyhive.models.CreateToolRequest(*, name, description=None, parameters=None, tool_type=None)[source]

Bases: BaseModel

CreateToolRequest model

Parameters:
  • name (str)

  • description (str | None)

  • parameters (Any | None)

  • tool_type (str | None)

name: str
description: str | None
parameters: Any | None
tool_type: str | None
class honeyhive.models.CreateToolResponse(*, inserted, result)[source]

Bases: BaseModel

CreateToolResponse model

Parameters:
inserted: bool
result: Dict[str, Any]
class honeyhive.models.DeleteToolQuery(*, id)[source]

Bases: BaseModel

DeleteToolQuery model

Parameters:

id (str)

id: str
class honeyhive.models.DeleteToolResponse(*, deleted, result)[source]

Bases: BaseModel

DeleteToolResponse model

Parameters:
deleted: bool
result: Dict[str, Any]
class honeyhive.models.GetToolsResponse[source]

Bases: BaseModel

GetToolsResponse model

class honeyhive.models.UpdateToolRequest(*, name=None, description=None, parameters=None, tool_type=None, id)[source]

Bases: BaseModel

UpdateToolRequest model

Parameters:
  • name (str | None)

  • description (str | None)

  • parameters (Any | None)

  • tool_type (str | None)

  • id (str)

name: str | None
description: str | None
parameters: Any | None
tool_type: str | None
id: str
class honeyhive.models.UpdateToolResponse(*, updated, result)[source]

Bases: BaseModel

UpdateToolResponse model

Parameters:
updated: bool
result: Dict[str, Any]
class honeyhive.models.TODOSchema(*, message)[source]

Bases: BaseModel

TODOSchema model

TODO: This is a placeholder schema. Proper Zod schemas need to be created in @hive-kube/core-ts for: Sessions, Events, Projects, and Experiment comparison/result endpoints.

Parameters:

message (str)

message: str
class honeyhive.models.EventType(value)[source]

Bases: str, Enum

Event types for tracing decorators.

Example:

from honeyhive import trace
from honeyhive.models import EventType

@trace(event_type=EventType.tool)
def my_function():
    pass
model = 'model'
tool = 'tool'
chain = 'chain'
session = 'session'
generic = 'generic'
class honeyhive.models.FilterOperator(value)[source]

Bases: str, Enum

Filter operators for event queries.

Example:

from honeyhive.models import EventFilter, FilterOperator

filter = EventFilter(
    field="event_type",
    operator=FilterOperator.IS,
    value="model",
    type="string"
)
IS = 'is'
IS_NOT = 'is not'
CONTAINS = 'contains'
NOT_CONTAINS = 'not contains'
GREATER_THAN = 'greater than'
class honeyhive.models.FilterFieldType(value)[source]

Bases: str, Enum

Field types for event filters.

STRING = 'string'
NUMBER = 'number'
BOOLEAN = 'boolean'
ID = 'id'
class honeyhive.models.EventFilter(*, field, operator, value, type='string')[source]

Bases: BaseModel

Filter for querying events.

Used with the events.export() method to filter events by field values.

Example:

from honeyhive.models import EventFilter, FilterOperator

# Filter by session_id
filter = EventFilter(
    field="session_id",
    operator=FilterOperator.IS,
    value="abc-123",
    type="string"
)

# Filter by event type
filter = EventFilter(
    field="event_type",
    operator="is",  # Can also use string
    value="model",
    type="string"
)

# Filter by metadata field
filter = EventFilter(
    field="metadata.cost",
    operator="greater than",
    value="0.01",
    type="number"
)
Parameters:
field: str
operator: str
value: str
type: str
to_dict()[source]

Convert to dict for API request.

Return type:

Dict[str, Any]

class honeyhive.models.EventExportRequest(*, project, filters=<factory>, dateRange=None, projections=None, limit=1000, page=1)[source]

Bases: BaseModel

Request model for exporting events.

Example:

from honeyhive.models import EventExportRequest, EventFilter

request = EventExportRequest(
    project="my-project",
    filters=[
        EventFilter(field="session_id", operator="is", value="abc-123", type="string")
    ],
    limit=100,
)
Parameters:
project: str
filters: List[EventFilter]
date_range: Dict[str, str] | None
projections: List[str] | None
limit: int | None
page: int | None
class honeyhive.models.EventExportResponse(*, events=<factory>, totalEvents=0)[source]

Bases: BaseModel

Response model for exported events.

Parameters:
events: List[Dict[str, Any]]
total_events: int

Note

Key Models Included:

Request Models:

  • CreateConfigurationRequest - Create configurations

  • CreateDatasetRequest - Create datasets

  • CreateDatapointRequest - Create datapoints

  • CreateMetricRequest - Create metrics

  • CreateToolRequest - Create tools

  • PostEventRequest - Post events

  • PostSessionRequest - Create sessions

  • PostExperimentRunRequest - Create experiment runs

  • UpdateConfigurationRequest, UpdateDatasetRequest, UpdateDatapointRequest - Update operations

Response Models:

  • CreateConfigurationResponse - Configuration creation response

  • CreateDatasetResponse - Dataset creation response

  • CreateDatapointResponse - Datapoint creation response

  • GetEventsResponse - Events retrieval

  • GetSessionResponse - Session retrieval

  • GetExperimentRunsResponse - Experiment runs retrieval

  • PostSessionStartResponse - Session start response

Query Parameters:

  • GetEventsQuery - Query parameters for fetching events

  • GetDatasetsQuery - Query parameters for fetching datasets

  • GetDatapointsQuery - Query parameters for fetching datapoints

Enums:

  • EventType - Event types (model, tool, chain, session, generic)

Configuration Models

ServerURLMixin

class honeyhive.config.models.base.ServerURLMixin[source]

Bases: object

Mixin for server URL configuration with HH_API_URL environment variable support.

This mixin provides the server_url field with proper environment variable loading for classes that need to support custom HoneyHive server URLs. It can be used by both APIClientConfig and TracerConfig to avoid field duplication.

Environment Variables:

HH_API_URL: Custom HoneyHive server URL

Examples

>>> class MyConfig(BaseHoneyHiveConfig, ServerURLMixin):
...     pass
>>> config = MyConfig()  # Loads from HH_API_URL if set
server_url: str = FieldInfo(annotation=NoneType, required=False, default='https://api.honeyhive.ai', alias_priority=2, validation_alias=AliasChoices(choices=['HH_API_URL', 'server_url']), description='Custom HoneyHive server URL', examples=['https://api.honeyhive.ai', 'https://custom.honeyhive.com'])
classmethod validate_server_url(v)[source]

Validate server URL format with graceful degradation.

Parameters:

v (Any) – The server URL to validate

Returns:

The validated and normalized server URL, or default if invalid

Return type:

str

Experiment Models

ExperimentRunStatus

class honeyhive.experiments.models.ExperimentRunStatus(value)[source]

Bases: str, Enum

Extended status enum with all backend values.

The generated Status enum only includes ‘pending’ and ‘completed’, but the backend supports additional states.

PENDING = 'pending'
COMPLETED = 'completed'
RUNNING = 'running'
FAILED = 'failed'
CANCELLED = 'cancelled'

RunComparisonResult

class honeyhive.experiments.models.RunComparisonResult(*, new_run_id, old_run_id, common_datapoints, new_only_datapoints=0, old_only_datapoints=0, metric_deltas=<factory>)[source]

Bases: BaseModel

Comparison between two experiment runs.

This model represents the delta analysis between a new run and an old run, including metric changes and datapoint differences.

Retrieved from: GET /runs/:new_run_id/compare-with/:old_run_id

Parameters:
  • new_run_id (str)

  • old_run_id (str)

  • common_datapoints (int)

  • new_only_datapoints (int)

  • old_only_datapoints (int)

  • metric_deltas (Dict[str, Any])

new_run_id: str
old_run_id: str
common_datapoints: int
new_only_datapoints: int
old_only_datapoints: int
metric_deltas: Dict[str, Any]
get_metric_delta(metric_name)[source]

Get delta information for a specific metric.

Parameters:

metric_name (str) – Name of the metric

Returns:

Delta information including new_value, old_value, delta, percent_change

Return type:

Dict[str, Any] | None

Example

>>> comparison.get_metric_delta("accuracy")
{
    'new_value': 0.85,
    'old_value': 0.80,
    'delta': 0.05,
    'percent_change': 6.25
}
list_improved_metrics()[source]

List metrics that improved in the new run.

Returns:

List of metric names where improved_count > 0

Return type:

List[str]

list_degraded_metrics()[source]

List metrics that degraded in the new run.

Returns:

List of metric names where degraded_count > 0

Return type:

List[str]

model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

ExperimentContext

class honeyhive.experiments.core.ExperimentContext(run_id, dataset_id, project, *, run_name=None, source='evaluation', metadata=None)[source]

Bases: object

Lightweight experiment context for metadata linking.

NOTE: This is NOT a replacement for tracer config. This is just a convenience class for organizing experiment metadata that gets passed to the tracer.

The tracer handles actual metadata propagation when is_evaluation=True.

Parameters:
run_id

Experiment run identifier

dataset_id

Dataset identifier (may have EXT- prefix)

project

Project identifier

source

Source identifier (default: “evaluation”)

metadata

Additional metadata dictionary

Example

>>> context = ExperimentContext(
...     run_id="run-123",
...     dataset_id="EXT-abc",
...     project="my-project"
... )
>>> tracer_config = context.to_tracer_config("dp-1")
>>> tracer_config["is_evaluation"]
True
to_tracer_config(datapoint_id)[source]

Convert to tracer initialization config.

This returns kwargs for HoneyHiveTracer(…) initialization. The tracer will automatically propagate all metadata to spans when is_evaluation=True.

Parameters:

datapoint_id (str) – Datapoint identifier for this execution

Returns:

Dictionary of tracer initialization kwargs

Return type:

Dict[str, Any]

Example

>>> config = context.to_tracer_config("dp-1")
>>> config
{
    'project': 'my-project',
    'is_evaluation': True,
    'run_id': 'run-123',
    'dataset_id': 'EXT-abc',
    'datapoint_id': 'dp-1',
    'source': 'evaluation'
}

See Also