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.
Generated Models
Request and response models 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.AddDatapointsResponse(*, inserted=None, datapoint_ids=None)[source]
Bases:
BaseModelAddDatapointsResponse model
- class honeyhive.models.AddDatapointsToDatasetRequest(*, project, data, mapping)[source]
Bases:
BaseModelAddDatapointsToDatasetRequest model
- mapping: DatapointMapping
- class honeyhive.models.Configuration(*, _id=None, project, name, env=None, provider, parameters, type=None, user_properties=None, org_id=None, project_id=None, tenant=None, created_at=None, updated_at=None)[source]
Bases:
BaseModelConfiguration model
- Parameters:
- parameters: ConfigurationParameters
- class honeyhive.models.CreateConfigurationRequest(*, project, name, provider, parameters, env=None, user_properties=None)[source]
Bases:
BaseModelCreateConfigurationRequest model
- Parameters:
- parameters: ConfigurationParameters
- class honeyhive.models.CreateDatapointRequest(*, project, inputs, history=None, ground_truth=None, linked_event=None, linked_datasets=None, metadata=None)[source]
Bases:
BaseModelCreateDatapointRequest model
- Parameters:
- class honeyhive.models.CreateDatapointResponse(*, result=None)[source]
Bases:
BaseModelCreateDatapointResponse model
- Parameters:
result (InsertResult | None)
- class honeyhive.models.CreateDatasetRequest(*, project, name, description=None, type=None, datapoints=None, linked_evals=None, saved=None, pipeline_type=None, metadata=None)[source]
Bases:
BaseModelCreateDatasetRequest model
- Parameters:
- class honeyhive.models.CreateDatasetResponse(*, inserted=None, result=None)[source]
Bases:
BaseModelCreateDatasetResponse model
- Parameters:
inserted (bool | None)
result (InsertResult | None)
- class honeyhive.models.CreateEventBatchRequest(*, events, is_single_session=None, session_properties=None)[source]
Bases:
BaseModelCreateEventBatchRequest model
- Parameters:
events (List[PostEventRequest])
is_single_session (bool | None)
session_properties (SessionPropertiesBatch | None)
- events: List[PostEventRequest]
- session_properties: SessionPropertiesBatch | None
- class honeyhive.models.PostEventBatchResponse(*, event_ids=None, session_id=None, success=None)[source]
Bases:
BaseModelPostEventBatchResponse model
- class honeyhive.models.PostEventResponse(*, event_id=None, success=None)[source]
Bases:
BaseModelPostEventResponse model
- class honeyhive.models.CreateModelEvent(*, project, model, provider, messages, response, duration, usage, cost=None, error=None, source=None, event_name=None, hyperparameters=None, template=None, template_inputs=None, tools=None, tool_choice=None, response_format=None)[source]
Bases:
BaseModelCreateModelEvent model
- class honeyhive.models.CreateModelEventBatchRequest(*, model_events, is_single_session=None, session_properties=None)[source]
Bases:
BaseModelCreateModelEventBatchRequest model
- Parameters:
model_events (List[CreateModelEvent])
is_single_session (bool | None)
session_properties (SessionPropertiesBatch | None)
- model_events: List[CreateModelEvent]
- session_properties: SessionPropertiesBatch | None
- class honeyhive.models.CreateModelEventBatchResponse(*, event_ids=None, success=None)[source]
Bases:
BaseModelCreateModelEventBatchResponse model
- class honeyhive.models.CreateModelEventRequestBody(*, model_event=None)[source]
Bases:
BaseModelCreateModelEventRequestBody model
- Parameters:
model_event (CreateModelEvent | None)
- model_event: CreateModelEvent | None
- class honeyhive.models.CreateProjectRequest(*, name, description=None)[source]
Bases:
BaseModelCreateProjectRequest model
- class honeyhive.models.PostEventRequestBody(*, event=None)[source]
Bases:
BaseModelPostEventRequestBody model
- Parameters:
event (PostEventRequest | None)
- event: PostEventRequest | None
- class honeyhive.models.CreateToolRequest(*, task=None, project_name=None, name, description=None, parameters, type=None, tool_type=None)[source]
Bases:
BaseModelCreateToolRequest model
- Parameters:
- class honeyhive.models.CreateToolResponse(*, result=None)[source]
Bases:
BaseModelCreateToolResponse model
- class honeyhive.models.Datapoint(*, _id=None, tenant=None, project_id=None, created_at=None, updated_at=None, inputs=None, history=None, ground_truth=None, linked_event=None, linked_evals=None, linked_datasets=None, saved=None, type=None, metadata=None)[source]
Bases:
BaseModelDatapoint model
- class honeyhive.models.Dataset(*, _id=None, dataset_id=None, org_id=None, project_id=None, tenant=None, project=None, name=None, description=None, type=None, datapoints=None, num_points=None, linked_evals=None, saved=None, pipeline_type=None, created_at=None, updated_at=None, metadata=None)[source]
Bases:
BaseModelDataset model
- Parameters:
_id (str | None)
dataset_id (str | None)
org_id (str | None)
project_id (str | None)
tenant (str | None)
project (str | None)
name (str | None)
description (str | None)
type (str | None)
num_points (int | None)
saved (bool | None)
pipeline_type (str | None)
created_at (str | None)
updated_at (str | None)
- class honeyhive.models.DeleteDatapointResponse(*, deleted=None)[source]
Bases:
BaseModelDeleteDatapointResponse model
- Parameters:
deleted (bool | None)
- class honeyhive.models.DeleteExperimentRunResponse(*, id=None, deleted=None)[source]
Bases:
BaseModelDeleteExperimentRunResponse model
- class honeyhive.models.EvaluationRun(*, run_id=None, project=None, created_at=None, event_ids=None, dataset_id=None, datapoint_ids=None, results=None, configuration=None, metadata=None, status=None, name=None)[source]
Bases:
BaseModelEvaluationRun model
- Parameters:
- class honeyhive.models.Event(*, project_id=None, source=None, event_name=None, event_type=None, event_id=None, session_id=None, parent_id=None, children_ids=None, config=None, inputs=None, outputs=None, error=None, start_time=None, end_time=None, duration=None, metadata=None, feedback=None, metrics=None, user_properties=None)[source]
Bases:
BaseModelEvent model
- class honeyhive.models.EventFilter(*, field=None, value=None, operator=None, type=None)[source]
Bases:
BaseModelEventFilter model
- class honeyhive.models.ExperimentComparisonResponse(*, metrics=None, commonDatapoints=None, event_details=None, old_run=None, new_run=None)[source]
Bases:
BaseModelExperimentComparisonResponse model
- Parameters:
- class honeyhive.models.ExperimentResultResponse(*, status=None, success=None, passed=None, failed=None, metrics=None, datapoints=None)[source]
Bases:
BaseModelExperimentResultResponse model
- Parameters:
- class honeyhive.models.GetDatapointResponse(*, datapoint=None)[source]
Bases:
BaseModelGetDatapointResponse model
- class honeyhive.models.GetDatapointsResponse(*, datapoints=None)[source]
Bases:
BaseModelGetDatapointsResponse model
- class honeyhive.models.GetDatasetsResponse(*, testcases=None)[source]
Bases:
BaseModelGetDatasetsResponse model
- class honeyhive.models.GetEventsRequest(*, project, filters, dateRange=None, projections=None, limit=None, page=None)[source]
Bases:
BaseModelGetEventsRequest model
- Parameters:
- filters: List[EventFilter]
- class honeyhive.models.GetEventsResponse(*, events=None, totalEvents=None)[source]
Bases:
BaseModelGetEventsResponse model
- class honeyhive.models.GetExperimentRunResponse(*, evaluation=None)[source]
Bases:
BaseModelGetExperimentRunResponse model
- Parameters:
evaluation (EvaluationRun | None)
- evaluation: EvaluationRun | None
- class honeyhive.models.GetRunsResponse(*, evaluations=None)[source]
Bases:
BaseModelGetRunsResponse model
- Parameters:
evaluations (List[EvaluationRun | None] | None)
- evaluations: List[EvaluationRun | None] | None
- class honeyhive.models.Metric(*, _id=None, name, criteria, code_snippet=None, prompt=None, task=None, type, description=None, enabled_in_prod=None, needs_ground_truth=None, return_type=None, threshold=None, pass_when=None, event_name=None, event_type=None, model_provider=None, model_name=None, child_metrics=None, sampling_percentage=None, filters=None, created_at=None, updated_at=None)[source]
Bases:
BaseModelMetric model
- Parameters:
_id (str | None)
name (str)
criteria (str)
code_snippet (str | None)
prompt (str | None)
task (str | None)
type (str)
description (str | None)
enabled_in_prod (bool | None)
needs_ground_truth (bool | None)
return_type (str | None)
pass_when (bool | None)
event_name (str | None)
event_type (str | None)
model_provider (str | None)
model_name (str | None)
sampling_percentage (float | None)
created_at (str | None)
updated_at (str | None)
- class honeyhive.models.PostEventRequest(*, project=None, source=None, event_name=None, event_type, event_id=None, session_id=None, parent_id=None, children_ids=None, config=None, inputs=None, outputs=None, error=None, start_time=None, end_time=None, duration=None, metadata=None, feedback=None, metrics=None, user_properties=None)[source]
Bases:
BaseModelPostEventRequest model
- class honeyhive.models.PostExperimentRunRequest(*, project, name, event_ids=None, dataset_id=None, datapoint_ids=None, configuration=None, metadata=None, status=None)[source]
Bases:
BaseModelPostExperimentRunRequest model
- Parameters:
- class honeyhive.models.PostExperimentRunResponse(*, evaluation=None, run_id=None)[source]
Bases:
BaseModelPostExperimentRunResponse model
- Parameters:
evaluation (EvaluationRun | None)
run_id (str | None)
- evaluation: EvaluationRun | None
- class honeyhive.models.Project(*, id=None, name, description=None, org_id=None, is_active=None, created_at=None, updated_at=None)[source]
Bases:
BaseModelProject model
- Parameters:
- class honeyhive.models.PutExperimentRunRequest(*, event_ids=None, dataset_id=None, datapoint_ids=None, configuration=None, metadata=None, name=None, status=None)[source]
Bases:
BaseModelPutExperimentRunRequest model
- Parameters:
- class honeyhive.models.PutExperimentRunResponse(*, evaluation=None, warning=None)[source]
Bases:
BaseModelPutExperimentRunResponse model
- Parameters:
evaluation (EvaluationRun | None)
warning (str | None)
- evaluation: EvaluationRun | None
- class honeyhive.models.SessionPropertiesBatch(*, session_name=None, source=None, session_id=None, config=None, inputs=None, outputs=None, error=None, user_properties=None, metrics=None, feedback=None, metadata=None)[source]
Bases:
BaseModelSessionPropertiesBatch model
- class honeyhive.models.SessionStartRequest(*, project, session_name, source, session_id=None, children_ids=None, config=None, inputs=None, outputs=None, error=None, duration=None, user_properties=None, metrics=None, feedback=None, metadata=None, start_time=None, end_time=None)[source]
Bases:
BaseModelSessionStartRequest model
- class honeyhive.models.StartSessionRequestBody(*, session=None)[source]
Bases:
BaseModelStartSessionRequestBody model
- Parameters:
session (SessionStartRequest | None)
- session: SessionStartRequest | None
- class honeyhive.models.StartSessionResponse(*, session_id=None)[source]
Bases:
BaseModelStartSessionResponse model
- Parameters:
session_id (str | None)
- class honeyhive.models.Tool(*, _id=None, task=None, name=None, description=None, parameters=None, tool_type=None, type=None, org_id=None, project_id=None, tenant=None, created_at=None, updated_at=None)[source]
Bases:
BaseModelTool model
- Parameters:
- class honeyhive.models.UpdateConfigurationRequest(*, project, name, provider, parameters, env=None, type=None, user_properties=None)[source]
Bases:
BaseModelUpdateConfigurationRequest model
- Parameters:
- parameters: ConfigurationParameters
- class honeyhive.models.UpdateDatapointRequest(*, inputs=None, history=None, ground_truth=None, linked_evals=None, linked_datasets=None, metadata=None)[source]
Bases:
BaseModelUpdateDatapointRequest model
- Parameters:
- class honeyhive.models.UpdateDatasetRequest(*, dataset_id, name=None, description=None, datapoints=None, linked_evals=None, metadata=None)[source]
Bases:
BaseModelUpdateDatasetRequest model
- Parameters:
- class honeyhive.models.UpdateEventRequest(*, event_id, metadata=None, feedback=None, metrics=None, outputs=None, config=None, user_properties=None, duration=None, error=None)[source]
Bases:
BaseModelUpdateEventRequest model
- Parameters:
- class honeyhive.models.UpdateMetricRequest(*, metric_id, criteria=None, name=None, description=None, code_snippet=None, prompt=None, type=None, enabled_in_prod=None, needs_ground_truth=None, return_type=None, threshold=None, pass_when=None, event_name=None, event_type=None, model_provider=None, model_name=None, child_metrics=None)[source]
Bases:
BaseModelUpdateMetricRequest model
- Parameters:
metric_id (str)
criteria (str | None)
name (str | None)
description (str | None)
code_snippet (str | None)
prompt (str | None)
type (str | None)
enabled_in_prod (bool | None)
needs_ground_truth (bool | None)
return_type (str | None)
pass_when (bool | None)
event_name (str | None)
event_type (str | None)
model_provider (str | None)
model_name (str | None)
- class honeyhive.models.UpdateProjectRequest(*, project_id, name=None, description=None)[source]
Bases:
BaseModelUpdateProjectRequest model
- class honeyhive.models.UpdateToolRequest(*, id, name, description=None, parameters)[source]
Bases:
BaseModelUpdateToolRequest model
- class honeyhive.models.EventType(*values)[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'
Note
Key Models Included:
Request Models:
- PostExperimentRunRequest - Create experiment runs
- CreateDatasetRequest - Create datasets
- CreateProjectRequest - Create projects
- CreateToolRequest - Create tools
- PutExperimentRunRequest, UpdateProjectRequest, UpdateToolRequest - Update operations
Response Models:
- PostExperimentRunResponse - Run creation response
- Dataset - Dataset information
- DeleteExperimentRunResponse - Deletion confirmation
- GetExperimentRunResponse, GetRunsResponse - Run retrieval
- ExperimentComparisonResponse - Run comparison payload
Supporting Models:
- SessionStartRequest, SessionPropertiesBatch - Session management
- ExperimentComparisonResponse, ExperimentResultResponse - Experiment results
- Configuration - Saved configuration payloads
- Metric / CreateMetricRequest - Metrics
- EventType - Tracing decorator event type enum
Enums:
- EventType - Event categories for traced operations
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(*values)[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