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
All request and response models generated from the API schema.
- class honeyhive.models.generated.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:
BaseModel
- class honeyhive.models.generated.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:
BaseModel
- class honeyhive.models.generated.EventType(value)[source]
Bases:
Enum- session = 'session'
- model = 'model'
- tool = 'tool'
- chain = 'chain'
- class honeyhive.models.generated.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:
BaseModel
- class honeyhive.models.generated.Operator(value)[source]
Bases:
Enum- is_ = 'is'
- is_not = 'is not'
- contains = 'contains'
- not_contains = 'not contains'
- greater_than = 'greater than'
- class honeyhive.models.generated.Type(value)[source]
Bases:
Enum- string = 'string'
- number = 'number'
- boolean = 'boolean'
- id = 'id'
- class honeyhive.models.generated.EventFilter(*, field=None, value=None, operator=None, type=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.EventType1(value)[source]
Bases:
Enum- model = 'model'
- tool = 'tool'
- chain = 'chain'
- class honeyhive.models.generated.CreateEventRequest(*, project, source, event_name, event_type, event_id=None, session_id=None, parent_id=None, children_ids=None, config, inputs, outputs=None, error=None, start_time=None, end_time=None, duration, metadata=None, feedback=None, metrics=None, user_properties=None)[source]
Bases:
BaseModel- Parameters:
- event_type: EventType1
- class honeyhive.models.generated.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:
BaseModel
- class honeyhive.models.generated.Type1(value)[source]
Bases:
Enum- PYTHON = 'PYTHON'
- LLM = 'LLM'
- HUMAN = 'HUMAN'
- COMPOSITE = 'COMPOSITE'
- class honeyhive.models.generated.ReturnType(value)[source]
Bases:
Enum- boolean = 'boolean'
- float = 'float'
- string = 'string'
- categorical = 'categorical'
- class honeyhive.models.generated.Threshold(*, min=None, max=None, pass_when=None, passing_categories=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.Metric(*, 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, id=None, created_at=None, updated_at=None)[source]
Bases:
BaseModel- Parameters:
name (str)
type (Type1)
criteria (str)
description (str | None)
return_type (ReturnType | None)
enabled_in_prod (bool | None)
needs_ground_truth (bool | None)
sampling_percentage (int | None)
model_provider (str | None)
model_name (str | None)
scale (int | None)
threshold (Threshold | None)
id (str | None)
created_at (str | None)
updated_at (str | None)
- return_type: ReturnType | None
- class honeyhive.models.generated.MetricEdit(*, metric_id, name=None, type=None, criteria=None, code_snippet=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)[source]
Bases:
BaseModel- Parameters:
metric_id (str)
name (str | None)
type (Type1 | None)
criteria (str | None)
code_snippet (str | None)
description (str | None)
return_type (ReturnType | None)
enabled_in_prod (bool | None)
needs_ground_truth (bool | None)
sampling_percentage (int | None)
model_provider (str | None)
model_name (str | None)
scale (int | None)
threshold (Threshold | None)
- return_type: ReturnType | None
- class honeyhive.models.generated.ToolType(value)[source]
Bases:
Enum- function = 'function'
- tool = 'tool'
- class honeyhive.models.generated.Tool(*, _id=None, task, name, description=None, parameters, tool_type)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.Type3(value)[source]
Bases:
Enum- function = 'function'
- tool = 'tool'
- class honeyhive.models.generated.CreateToolRequest(*, task, name, description=None, parameters, type)[source]
Bases:
BaseModel
- class honeyhive.models.generated.UpdateToolRequest(*, id, name, description=None, parameters)[source]
Bases:
BaseModel
- class honeyhive.models.generated.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:
BaseModel
- class honeyhive.models.generated.CreateDatapointRequest(*, project, inputs, history=None, ground_truth=None, linked_event=None, linked_datasets=None, metadata=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.UpdateDatapointRequest(*, inputs=None, history=None, ground_truth=None, linked_evals=None, linked_datasets=None, metadata=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.Type4(value)[source]
Bases:
Enum- evaluation = 'evaluation'
- fine_tuning = 'fine-tuning'
- class honeyhive.models.generated.PipelineType(value)[source]
Bases:
Enum- event = 'event'
- session = 'session'
- class honeyhive.models.generated.CreateDatasetRequest(*, project, name, description=None, type=None, datapoints=None, linked_evals=None, saved=None, pipeline_type=None, metadata=None)[source]
Bases:
BaseModel- Parameters:
- pipeline_type: PipelineType | None
- class honeyhive.models.generated.Dataset(*, dataset_id=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:
BaseModel- Parameters:
- pipeline_type: PipelineType | None
- class honeyhive.models.generated.DatasetUpdate(*, dataset_id, name=None, description=None, datapoints=None, linked_evals=None, metadata=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.CreateProjectRequest(*, name, description=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.UpdateProjectRequest(*, project_id, name=None, description=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.Status(value)[source]
Bases:
Enum- pending = 'pending'
- completed = 'completed'
- class honeyhive.models.generated.UpdateRunResponse(*, evaluation=None, warning=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.Detail(*, metric_name=None, metric_type=None, event_name=None, event_type=None, aggregate=None, values=None, datapoints=None)[source]
Bases:
BaseModel- Parameters:
- datapoints: Datapoints | None
- class honeyhive.models.generated.Metrics(*, aggregation_function=None, details=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.Metric1(*, name=None, event_name=None, event_type=None, value=None, passed=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.Datapoint1(*, datapoint_id=None, session_id=None, passed=None, metrics=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.ExperimentResultResponse(*, status=None, success=None, passed=None, failed=None, metrics=None, datapoints=None)[source]
Bases:
BaseModel- Parameters:
- datapoints: List[Datapoint1] | None
- class honeyhive.models.generated.Metric2(*, metric_name=None, event_name=None, metric_type=None, event_type=None, old_aggregate=None, new_aggregate=None, found_count=None, improved_count=None, degraded_count=None, same_count=None, improved=None, degraded=None, same=None, old_values=None, new_values=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.EventDetail(*, event_name=None, event_type=None, presence=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.OldRun(*, _id=None, run_id=None, project=None, tenant=None, created_at=None, event_ids=None, session_ids=None, dataset_id=None, datapoint_ids=None, evaluators=None, results=None, configuration=None, metadata=None, passing_ranges=None, status=None, name=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.NewRun(*, _id=None, run_id=None, project=None, tenant=None, created_at=None, event_ids=None, session_ids=None, dataset_id=None, datapoint_ids=None, evaluators=None, results=None, configuration=None, metadata=None, passing_ranges=None, status=None, name=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.ExperimentComparisonResponse(*, metrics=None, commonDatapoints=None, event_details=None, old_run=None, new_run=None)[source]
Bases:
BaseModel- Parameters:
- event_details: List[EventDetail] | None
- class honeyhive.models.generated.UUIDType(root=PydanticUndefined)[source]
Bases:
RootModel[UUID]- Parameters:
root (UUID)
- root: UUID
- class honeyhive.models.generated.EnvEnum(value)[source]
Bases:
Enum- dev = 'dev'
- staging = 'staging'
- prod = 'prod'
- class honeyhive.models.generated.CallType(value)[source]
Bases:
Enum- chat = 'chat'
- completion = 'completion'
- class honeyhive.models.generated.SelectedFunction(*, id=None, name=None, description=None, parameters=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.FunctionCallParams(value)[source]
Bases:
Enum- none = 'none'
- auto = 'auto'
- force = 'force'
- class honeyhive.models.generated.Parameters(*, call_type, model, hyperparameters=None, responseFormat=None, selectedFunctions=None, functionCallParams=None, forceFunction=None, **extra_data)[source]
Bases:
BaseModel- Parameters:
- selectedFunctions: List[SelectedFunction] | None
- functionCallParams: FunctionCallParams | None
- class honeyhive.models.generated.Type6(value)[source]
Bases:
Enum- LLM = 'LLM'
- pipeline = 'pipeline'
- class honeyhive.models.generated.Configuration(*, _id=None, project, name, env=None, provider, parameters, type=None, user_properties=None)[source]
Bases:
BaseModel- Parameters:
- parameters: Parameters
- class honeyhive.models.generated.Parameters1(*, call_type, model, hyperparameters=None, responseFormat=None, selectedFunctions=None, functionCallParams=None, forceFunction=None, **extra_data)[source]
Bases:
BaseModel- Parameters:
- selectedFunctions: List[SelectedFunction] | None
- functionCallParams: FunctionCallParams | None
- class honeyhive.models.generated.PutConfigurationRequest(*, project, name, provider, parameters, env=None, type=None, user_properties=None)[source]
Bases:
BaseModel- Parameters:
- parameters: Parameters1
- class honeyhive.models.generated.Parameters2(*, call_type, model, hyperparameters=None, responseFormat=None, selectedFunctions=None, functionCallParams=None, forceFunction=None, **extra_data)[source]
Bases:
BaseModel- Parameters:
- selectedFunctions: List[SelectedFunction] | None
- functionCallParams: FunctionCallParams | None
- class honeyhive.models.generated.PostConfigurationRequest(*, project, name, provider, parameters, env=None, user_properties=None)[source]
Bases:
BaseModel- Parameters:
- parameters: Parameters2
- class honeyhive.models.generated.CreateRunRequest(*, project, name, event_ids, dataset_id=None, datapoint_ids=None, configuration=None, metadata=None, status=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.UpdateRunRequest(*, event_ids=None, dataset_id=None, datapoint_ids=None, configuration=None, metadata=None, name=None, status=None)[source]
Bases:
BaseModel- Parameters:
- class honeyhive.models.generated.DeleteRunResponse(*, id=None, deleted=None)[source]
Bases:
BaseModel
- class honeyhive.models.generated.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:
BaseModel
- class honeyhive.models.generated.CreateRunResponse(*, evaluation=None, run_id=None)[source]
Bases:
BaseModel- Parameters:
evaluation (EvaluationRun | None)
run_id (UUIDType | None)
- evaluation: EvaluationRun | None
- class honeyhive.models.generated.GetRunsResponse(*, evaluations=None)[source]
Bases:
BaseModel- Parameters:
evaluations (List[EvaluationRun] | None)
- evaluations: List[EvaluationRun] | None
- class honeyhive.models.generated.GetRunResponse(*, evaluation=None)[source]
Bases:
BaseModel- Parameters:
evaluation (EvaluationRun | None)
- evaluation: EvaluationRun | None
Note
Key Models Included:
Request Models:
- CreateRunRequest - Create experiment runs
- CreateDatasetRequest - Create datasets
- CreateProjectRequest - Create projects
- CreateToolRequest - Create tools
- UpdateRunRequest, UpdateProjectRequest, UpdateToolRequest - Update operations
Response Models:
- CreateRunResponse - Run creation response
- Dataset - Dataset information
- DeleteRunResponse - Deletion confirmation
- GetRunResponse, GetRunsResponse - Run retrieval
- NewRun, OldRun - Run comparison models
Supporting Models:
- SessionStartRequest, SessionPropertiesBatch - Session management
- ExperimentComparisonResponse, ExperimentResultResponse - Experiment results
- FunctionCallParams, SelectedFunction, Parameters - Configuration
- Metric1, Metric2, MetricEdit - Metrics
- Threshold, Operator - Evaluation criteria
Enums:
- CallType - LLM call types (chat, completion)
- EnvEnum - Environments (dev, staging, prod)
- PipelineType - Pipeline types (event, session)
- ToolType, ReturnType - Tool and return type specifications
- Type1, Type3, Type4, Type6 - Type categorizations
- UUIDType - UUID handling
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: ClassVar[ConfigDict] = {}
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