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:
BaseModelCreateConfigurationRequest model
- Parameters:
- parameters: ConfigurationParameters
- class honeyhive.models.CreateConfigurationResponse(*, acknowledged, insertedId)[source]
Bases:
BaseModelCreateConfigurationResponse model
- class honeyhive.models.DeleteConfigurationResponse(*, acknowledged, deletedCount)[source]
Bases:
BaseModelDeleteConfigurationResponse model
- class honeyhive.models.GetConfigurationsQuery(*, name=None, env=None, tags=None)[source]
Bases:
BaseModelGetConfigurationsQuery model
- class honeyhive.models.GetConfigurationsResponse[source]
Bases:
BaseModelGetConfigurationsResponse model
- class honeyhive.models.UpdateConfigurationRequest(*, name, type=None, provider=None, parameters=None, env=None, tags=None, user_properties=None)[source]
Bases:
BaseModelUpdateConfigurationRequest model
- Parameters:
- class honeyhive.models.UpdateConfigurationResponse(*, acknowledged, modifiedCount, upsertedId, upsertedCount, matchedCount)[source]
Bases:
BaseModelUpdateConfigurationResponse model
- Parameters:
- class honeyhive.models.BatchCreateDatapointsRequest(*, events=None, mapping=None, filters=None, dateRange=None, checkState=None, selectAll=None, dataset_id=None)[source]
Bases:
BaseModelBatchCreateDatapointsRequest model
- Parameters:
- mapping: DatapointMapping | None
- class honeyhive.models.BatchCreateDatapointsResponse(*, inserted, insertedIds)[source]
Bases:
BaseModelBatchCreateDatapointsResponse model
- class honeyhive.models.CreateDatapointRequest(*, inputs=None, history=None, ground_truth=None, metadata=None, linked_event=None, linked_datasets=None)[source]
Bases:
BaseModelCreateDatapointRequest model
- Parameters:
- class honeyhive.models.CreateDatapointResponse(*, inserted, result)[source]
Bases:
BaseModelCreateDatapointResponse model
- class honeyhive.models.DeleteDatapointParams(*, datapoint_id)[source]
Bases:
BaseModelDeleteDatapointParams model
- Parameters:
datapoint_id (str)
- class honeyhive.models.DeleteDatapointResponse(*, deleted)[source]
Bases:
BaseModelDeleteDatapointResponse model
- Parameters:
deleted (bool)
- class honeyhive.models.GetDatapointParams(*, id)[source]
Bases:
BaseModelGetDatapointParams model
- Parameters:
id (str)
- class honeyhive.models.GetDatapointResponse(*, datapoint)[source]
Bases:
BaseModelGetDatapointResponse model
- Parameters:
datapoint (List[Datapoint])
- class honeyhive.models.GetDatapointsQuery(*, datapoint_ids=None, dataset_name=None)[source]
Bases:
BaseModelGetDatapointsQuery model
- class honeyhive.models.GetDatapointsResponse(*, datapoints)[source]
Bases:
BaseModelGetDatapointsResponse model
- Parameters:
datapoints (List[Datapoint])
- class honeyhive.models.UpdateDatapointParams(*, datapoint_id)[source]
Bases:
BaseModelUpdateDatapointParams model
- Parameters:
datapoint_id (str)
- class honeyhive.models.UpdateDatapointRequest(*, inputs=None, history=None, ground_truth=None, metadata=None, linked_event=None, linked_datasets=None)[source]
Bases:
BaseModelUpdateDatapointRequest model
- Parameters:
- class honeyhive.models.UpdateDatapointResponse(*, updated, result)[source]
Bases:
BaseModelUpdateDatapointResponse model
- class honeyhive.models.AddDatapointsResponse(*, inserted, datapoint_ids)[source]
Bases:
BaseModelAddDatapointsResponse model
- class honeyhive.models.AddDatapointsToDatasetRequest(*, data, mapping)[source]
Bases:
BaseModelAddDatapointsToDatasetRequest model
- Parameters:
mapping (DatapointMapping)
- mapping: DatapointMapping
- class honeyhive.models.CreateDatasetRequest(*, name, description=None, datapoints=None)[source]
Bases:
BaseModelCreateDatasetRequest model
- class honeyhive.models.DatapointMapping(*, inputs=None, history=None, ground_truth=None)[source]
Bases:
BaseModelDatapointMapping model
- class honeyhive.models.CreateDatasetResponse(*, inserted, result)[source]
Bases:
BaseModelCreateDatasetResponse model
- Parameters:
inserted (bool)
result (InsertResult)
- result: InsertResult
- class honeyhive.models.DeleteDatasetQuery(*, dataset_id)[source]
Bases:
BaseModelDeleteDatasetQuery model
- Parameters:
dataset_id (str)
- class honeyhive.models.DeleteDatasetResponse(*, result)[source]
Bases:
BaseModelDeleteDatasetResponse model
- Parameters:
result (DeleteResult)
- result: DeleteResult
- class honeyhive.models.GetDatasetsQuery(*, dataset_id=None, name=None, include_datapoints=None)[source]
Bases:
BaseModelGetDatasetsQuery model
- class honeyhive.models.GetDatasetsResponse(*, datasets)[source]
Bases:
BaseModelGetDatasetsResponse model
- Parameters:
datasets (List[Dataset])
- class honeyhive.models.RemoveDatapointFromDatasetParams(*, dataset_id, datapoint_id)[source]
Bases:
BaseModelRemoveDatapointFromDatasetParams model
- class honeyhive.models.RemoveDatapointResponse(*, dereferenced, message)[source]
Bases:
BaseModelRemoveDatapointResponse model
- class honeyhive.models.UpdateDatasetRequest(*, dataset_id, name=None, description=None, datapoints=None)[source]
Bases:
BaseModelUpdateDatasetRequest model
- Parameters:
- class honeyhive.models.UpdateDatasetResponse(*, result)[source]
Bases:
BaseModelUpdateDatasetResponse 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)
- class honeyhive.models.DeleteEventResponse(*, success, deleted)[source]
Bases:
BaseModel- DeleteEventResponse model
Response for DELETE /events/:event_id
- class honeyhive.models.Event(*, event_id, project_id, tenant, event_name=None, event_type=None, metrics=None, metadata=None, feedback=None)[source]
Bases:
BaseModelEvent model
- Parameters:
- class honeyhive.models.GetEventsBySessionIdParams(*, session_id)[source]
Bases:
BaseModel- GetEventsBySessionIdParams model
Path parameters for GET /events/:session_id
- Parameters:
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)
start_time (float)
end_time (float)
duration (float)
parent_id (str | None)
session_id (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:
- class honeyhive.models.GetEventsChartResponse(*, events, totalEvents)[source]
Bases:
BaseModel- GetEventsChartResponse model
Chart data response for events
- 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:
- class honeyhive.models.GetEventsResponse(*, events, totalEvents)[source]
Bases:
BaseModelGetEventsResponse model
- class honeyhive.models.PostEventRequest(*, event)[source]
Bases:
BaseModel- PostEventRequest model
Request to create a new event
- class honeyhive.models.PostEventResponse(*, success, event_id=None)[source]
Bases:
BaseModel- PostEventResponse model
Response after creating an event
- class honeyhive.models.DeleteExperimentRunParams(*, run_id)[source]
Bases:
BaseModelDeleteExperimentRunParams model
- Parameters:
run_id (str)
- class honeyhive.models.DeleteExperimentRunResponse(*, id, deleted)[source]
Bases:
BaseModelDeleteExperimentRunResponse model
- class honeyhive.models.GetExperimentRunCompareEventsQuery(*, run_id_1, run_id_2, event_name=None, event_type=None, filter=None, limit=None, page=None)[source]
Bases:
BaseModelGetExperimentRunCompareEventsQuery model
- Parameters:
- class honeyhive.models.GetExperimentRunCompareParams(*, new_run_id, old_run_id)[source]
Bases:
BaseModelGetExperimentRunCompareParams model
- class honeyhive.models.GetExperimentRunCompareQuery(*, aggregate_function=None, filters=None)[source]
Bases:
BaseModelGetExperimentRunCompareQuery model
- class honeyhive.models.GetExperimentRunMetricsQuery(*, dateRange=None, filters=None)[source]
Bases:
BaseModelGetExperimentRunMetricsQuery model
- class honeyhive.models.GetExperimentRunParams(*, run_id)[source]
Bases:
BaseModelGetExperimentRunParams model
- Parameters:
run_id (str)
- class honeyhive.models.GetExperimentRunResponse(*, evaluation=None)[source]
Bases:
BaseModelGetExperimentRunResponse model
- Parameters:
evaluation (Any | None)
- class honeyhive.models.GetExperimentRunResultQuery(*, aggregate_function=None, filters=None)[source]
Bases:
BaseModelGetExperimentRunResultQuery model
- 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:
BaseModelGetExperimentRunsQuery model
- Parameters:
- class honeyhive.models.GetExperimentRunsResponse(*, evaluations, pagination, metrics)[source]
Bases:
BaseModelGetExperimentRunsResponse model
- pagination: Pagination
- class honeyhive.models.GetExperimentRunsSchemaQuery(*, dateRange=None, evaluation_id=None)[source]
Bases:
BaseModelGetExperimentRunsSchemaQuery model
- class honeyhive.models.GetExperimentRunsSchemaResponse(*, fields, datasets, mappings)[source]
Bases:
BaseModelGetExperimentRunsSchemaResponse model
- 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:
BaseModelPostExperimentRunRequest model
- class honeyhive.models.PostExperimentRunResponse(*, evaluation=None, run_id)[source]
Bases:
BaseModelPostExperimentRunResponse model
- 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:
BaseModelPutExperimentRunRequest model
- class honeyhive.models.PutExperimentRunResponse(*, evaluation=None, warning=None)[source]
Bases:
BaseModelPutExperimentRunResponse model
- 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:
BaseModelCreateMetricRequest model
- class honeyhive.models.CreateMetricResponse(*, inserted, metric_id)[source]
Bases:
BaseModelCreateMetricResponse model
- class honeyhive.models.DeleteMetricQuery(*, metric_id)[source]
Bases:
BaseModelDeleteMetricQuery model
- Parameters:
metric_id (str)
- class honeyhive.models.DeleteMetricResponse(*, deleted)[source]
Bases:
BaseModelDeleteMetricResponse model
- Parameters:
deleted (bool)
- class honeyhive.models.GetMetricsQuery(*, type=None, id=None)[source]
Bases:
BaseModelGetMetricsQuery model
- class honeyhive.models.RunMetricRequest(*, metric, event=None)[source]
Bases:
BaseModelRunMetricRequest 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:
BaseModelUpdateMetricRequest model
- class honeyhive.models.UpdateMetricResponse(*, updated)[source]
Bases:
BaseModelUpdateMetricResponse model
- Parameters:
updated (bool)
- class honeyhive.models.DeleteSessionResponse(*, success, deleted)[source]
Bases:
BaseModel- DeleteSessionResponse model
Confirmation of session deletion
- 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)
start_time (float)
end_time (float)
duration (float)
parent_id (str | None)
session_id (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:
BaseModelPostSessionRequest model
- Parameters:
- 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)
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:
BaseModelCreateToolRequest model
- class honeyhive.models.CreateToolResponse(*, inserted, result)[source]
Bases:
BaseModelCreateToolResponse model
- class honeyhive.models.DeleteToolQuery(*, id)[source]
Bases:
BaseModelDeleteToolQuery model
- Parameters:
id (str)
- class honeyhive.models.DeleteToolResponse(*, deleted, result)[source]
Bases:
BaseModelDeleteToolResponse model
- class honeyhive.models.UpdateToolRequest(*, name=None, description=None, parameters=None, tool_type=None, id)[source]
Bases:
BaseModelUpdateToolRequest model
- Parameters:
- class honeyhive.models.UpdateToolResponse(*, updated, result)[source]
Bases:
BaseModelUpdateToolResponse model
- 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)
- class honeyhive.models.EventType(value)[source]
-
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]
-
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]
-
Field types for event filters.
- STRING = 'string'
- NUMBER = 'number'
- BOOLEAN = 'boolean'
- ID = 'id'
- class honeyhive.models.EventFilter(*, field, operator, value, type='string')[source]
Bases:
BaseModelFilter 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" )
- class honeyhive.models.EventExportRequest(*, project, filters=<factory>, dateRange=None, projections=None, limit=1000, page=1)[source]
Bases:
BaseModelRequest 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:
- filters: List[EventFilter]
- class honeyhive.models.EventExportResponse(*, events=<factory>, totalEvents=0)[source]
Bases:
BaseModelResponse model for exported events.
Note
Key Models Included:
Request Models:
CreateConfigurationRequest- Create configurationsCreateDatasetRequest- Create datasetsCreateDatapointRequest- Create datapointsCreateMetricRequest- Create metricsCreateToolRequest- Create toolsPostEventRequest- Post eventsPostSessionRequest- Create sessionsPostExperimentRunRequest- Create experiment runsUpdateConfigurationRequest,UpdateDatasetRequest,UpdateDatapointRequest- Update operations
Response Models:
CreateConfigurationResponse- Configuration creation responseCreateDatasetResponse- Dataset creation responseCreateDatapointResponse- Datapoint creation responseGetEventsResponse- Events retrievalGetSessionResponse- Session retrievalGetExperimentRunsResponse- Experiment runs retrievalPostSessionStartResponse- Session start response
Query Parameters:
GetEventsQuery- Query parameters for fetching eventsGetDatasetsQuery- Query parameters for fetching datasetsGetDatapointsQuery- 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:
objectMixin 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'])
Experiment Models
ExperimentRunStatus
- class honeyhive.experiments.models.ExperimentRunStatus(value)[source]
-
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:
BaseModelComparison 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:
- 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:
Example
>>> comparison.get_metric_delta("accuracy") { 'new_value': 0.85, 'old_value': 0.80, 'delta': 0.05, 'percent_change': 6.25 }
- 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:
objectLightweight 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:
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
API Client Classes - API client classes
Experiments Module - Experiments API
Evaluation & Analysis Guides - Evaluation guides