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.
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.

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 export differences

Legacy exports are deprecated. They split trace context into traces/ and observation data into observations/; consumers join them on trace_id.

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/)

Legacy observations use the same observation field groups, with these differences:

GroupDifference in the legacy file
basicDoes not include bookmarked, is_root_observation, public, session_id, or user_id.
usageDoes not include usage_pricing_tier_id.
trace_contextHas no effect; release, tags, and the trace name are available in the separate traces/ file.

All other field groups use the same field names as observations_v2/. Some nullable values appear as empty strings in enriched JSON/JSONL output.

See upgrade a legacy export before changing a consumer.

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