Langfuse v4: up to 165ร— faster ยท Read more
DocsExport Field Reference

Blob storage export field reference

Use this reference when building a consumer for the blob storage export. Types match JSON and JSONL output. Timestamps use YYYY-MM-DD HH:MM:SS.ffffff in UTC.

Exported files

FileWhen it is exported
observations_v2/Current enriched export
scores/Every export
traces/Deprecated legacy export
observations/Deprecated legacy export

For configuration and migration steps, see Export to blob storage.

Enriched observations (observations_v2/)

Each row represents one observation and includes its trace context. Only the selected field groups appear; core is always included.

FieldTypeDescription
idstringUnique observation identifier.
trace_idstringTrace identifier shared by related observations and scores.
project_idstringLangfuse project identifier.
environmentstringEnvironment label.
typestringObservation type: SPAN, GENERATION, EVENT, AGENT, TOOL, CHAIN, RETRIEVER, EVALUATOR, EMBEDDING, or GUARDRAIL.
parent_observation_idstringParent observation identifier; empty for a root observation.
is_root_observationbooleanWhether the observation is a logical root.
start_timestring (timestamp)When the observation started.
end_timestring (timestamp) or nullWhen the observation ended.
namestringUser-defined observation name.
metadataobjectUser-supplied observation metadata.
levelstringDEBUG, DEFAULT, WARNING, or ERROR.
status_messagestringStatus or error message.
versionstringUser-defined version.
inputstringObservation input; may contain plain text or JSON.
outputstringObservation output; may contain plain text or JSON.
provided_model_namestringModel name supplied by the SDK or user.
model_parametersstringModel parameters encoded as JSON.
usage_detailsobject (string โ†’ integer)Token usage by category, such as input, output, and total.
cost_detailsobject (string โ†’ number)Cost in USD by category.
completion_start_timestring (timestamp) or nullWhen the first streamed token was generated.
prompt_namestringLangfuse prompt name.
prompt_versioninteger or nullLangfuse prompt version.
total_costnumberTotal observation cost in USD; 0 when no cost was recorded.
latencynumber or nullDuration in seconds.
time_to_first_tokennumber or nullTime to first token in seconds.
model_idstringMatched Langfuse model definition identifier.
created_atstring (timestamp)Row creation time.
updated_atstring (timestamp)Last row update time.
prompt_idstringLangfuse prompt identifier.
tool_callsarray of stringsTool calls encoded as JSON strings.
tool_call_namesarray of stringsNames of called tools.
tool_definitionsobjectTool or function schemas supplied to the model.
usage_pricing_tier_idstring or nullPricing tier identifier used for cost calculation.
usage_pricing_tier_namestring or nullPricing tier name used for cost calculation.
input_pricestring or nullMatched per-unit input price; omitted from Parquet.
output_pricestring or nullMatched per-unit output price; omitted from Parquet.
total_pricestring or nullMatched flat per-call price; omitted from Parquet.
user_idstringEnd-user identifier from the trace.
session_idstringSession identifier from the trace.
trace_namestringTrace name.
tagsarray of stringsTrace tags.
releasestringTrace release.
bookmarkedbooleanWhether the trace is bookmarked.
publicbooleanWhether the trace is public.

Integrations created on or after 2026-04-01 export latency and time_to_first_token in seconds. Older integrations export these fields in milliseconds for backward compatibility.

Scores (scores/)

Scores are always exported. Their fields are not configurable. Scores with data type NUMERIC, BOOLEAN, CATEGORICAL, or TEXT are included; corrections (data type CORRECTION) are not.

FieldTypeDescription
idstringUnique score identifier.
timestampstring (timestamp)Score creation time.
project_idstringLangfuse project identifier.
environmentstringEnvironment label.
trace_idstring or nullAssociated trace identifier.
observation_idstring or nullAssociated observation identifier.
session_idstring or nullAssociated session identifier.
dataset_run_idstring or nullAssociated dataset run identifier.
namestringScore name.
valuenumberNumeric value; TEXT scores use 0.
sourcestringAPI, ANNOTATION, or EVAL.
commentstring or nullOptional comment or evaluator reasoning.
data_typestringNUMERIC, BOOLEAN, CATEGORICAL, or TEXT.
string_valuestring or nullCategory label or text value; null for numeric scores.
created_atstring (timestamp)Row creation time.
updated_atstring (timestamp)Last row update time.

Legacy exports

Legacy exports are deprecated. They split trace context into traces/ and observation data into observations/; consumers join them on trace_id. See upgrade a legacy export before changing a consumer.

Traces (traces/)

The trace file has a fixed schema; field groups do not apply.

FieldTypeDescription
idstringUnique trace identifier.
timestampstring (timestamp)Trace creation time.
namestringUser-defined trace name.
environmentstringEnvironment label.
project_idstringLangfuse project identifier.
metadataobjectTrace metadata.
user_idstring or nullEnd-user identifier.
session_idstring or nullSession identifier.
releasestring or nullApplication release.
versionstring or nullUser-defined version.
publicbooleanWhether the trace is public.
bookmarkedbooleanWhether the trace is bookmarked.
tagsarray of stringsTrace tags.
inputstring or nullTrace input.
outputstring or nullTrace output.
created_atstring (timestamp)Row creation time.
updated_atstring (timestamp)Last row update time.

Legacy trace-level input, output, metadata, timestamp, and version do not have direct equivalents in observations_v2/. Observation fields with the same names contain observation-level data instead.

The trace file does not include total_cost, latency, observations, scores, or html_path.

Observations (observations/)

Each row represents one observation without its trace context; join trace_id to the traces/ file to add it. Only the selected field groups appear; core is always included.

FieldTypeDescription
idstringUnique observation identifier.
trace_idstringTrace identifier shared by related observations and scores.
project_idstringLangfuse project identifier.
environmentstringEnvironment label.
typestringObservation type: SPAN, GENERATION, EVENT, AGENT, TOOL, CHAIN, RETRIEVER, EVALUATOR, EMBEDDING, or GUARDRAIL.
parent_observation_idstring or nullParent observation identifier; null for a root observation.
start_timestring (timestamp)When the observation started.
end_timestring (timestamp) or nullWhen the observation ended.
namestringUser-defined observation name.
metadataobjectUser-supplied observation metadata.
levelstringDEBUG, DEFAULT, WARNING, or ERROR.
status_messagestring or nullStatus or error message.
versionstring or nullUser-defined version.
inputstring or nullObservation input; may contain plain text or JSON.
outputstring or nullObservation output; may contain plain text or JSON.
provided_model_namestring or nullModel name supplied by the SDK or user.
model_parametersstring or nullModel parameters encoded as JSON.
usage_detailsobject (string โ†’ integer)Token usage by category, such as input, output, and total.
cost_detailsobject (string โ†’ number)Cost in USD by category.
completion_start_timestring (timestamp) or nullWhen the first streamed token was generated.
prompt_namestring or nullLangfuse prompt name.
prompt_versioninteger or nullLangfuse prompt version.
total_costnumber or nullTotal observation cost in USD.
latencynumber or nullDuration in seconds.
time_to_first_tokennumber or nullTime to first token in seconds.
model_idstring or nullMatched Langfuse model definition identifier.
created_atstring (timestamp)Row creation time.
updated_atstring (timestamp)Last row update time.
prompt_idstring or nullLangfuse prompt identifier.
tool_callsarray of stringsTool calls encoded as JSON strings.
tool_call_namesarray of stringsNames of called tools.
tool_definitionsobjectTool or function schemas supplied to the model.
usage_pricing_tier_namestring or nullPricing tier name used for cost calculation.
input_pricestring or nullMatched per-unit input price; omitted from Parquet.
output_pricestring or nullMatched per-unit output price; omitted from Parquet.
total_pricestring or nullMatched flat per-call price; omitted from Parquet.

Where a field appears in both observation files it carries the same meaning. Unset values are encoded differently, though: a field that is null above maps to one of three values in observations_v2/ JSON and JSONL output.

Value in observations_v2/Fields
"" (empty string)input, model_id, model_parameters, output, parent_observation_id, prompt_id, prompt_name, provided_model_name, status_message, version
nullcompletion_start_time, end_time, input_price, latency, output_price, prompt_version, time_to_first_token, total_price, usage_pricing_tier_name
0total_cost

Empty strings appear where the v4 events table stores the column as non-nullable. total_cost reads from cost_details['total'], so a 0 there cannot be told apart from a genuine zero cost.

For the field groups that select these columns and how they differ from the enriched export, see what changes in the exported data.

Parquet differences

Parquet uses internal encoding and compression, so gzip does not apply.

Observation files omit input_price, output_price, and total_price. Use cost_details and total_cost for cost data.

Trace and score fields are the same across all formats.

File organization

See process exports for paths, filenames, and the manifest workflow.


Was this page helpful?

Last edited