Langfuse export guide

Export Langfuse data with a clear audit trail.

Use Langfuse UI, API, or blob-storage exports, reconcile observations and scores, and prepare a controlled migration or evaluation dataset in Lunary.

Written by Lunary · Documentation reviewed September 16, 2026 · Sources & methodology

THE SHORT ANSWER

Choose the export route for your volume, preserve observations and their relationships, and validate the archive before transforming any data for a new platform.

Teams archiving Langfuse history or preparing a move

One filtered sample

Start with a UI export in CSV or JSON and record the table filters used.

Recurring or large exports

Review the documented blob-storage or programmatic routes and their availability for your deployment.

Migration success

Measure complete, correctly related records—not merely the existence of a downloaded file.

COMPARE THE WORKFLOW

At a glance

Export Langfuse data with a clear audit trail.: at a glance
Export concernValidation
FiltersSource and export use the same interval and environment
ColumnsInspect the file; UI column visibility does not redact it
RelationshipsObservation and parent identifiers remain usable
ScoresEach score stays attached to its intended object
DestinationInput, observed output, and expected behavior are mapped deliberately
01

1. Inventory what you need to preserve

List traces or observations, scores, prompts, and datasets as separate objects. The names and schema can depend on the Langfuse version and export route, so capture the actual output schema rather than relying on an old mapping script. Define a fixed time window and include the environment and any tags used to select the archive. Decide whether you need the full nested history or a smaller set of task-level examples.

02

2. Export a sample from the UI

Open the relevant observability table and apply the filters for your sample. Use its export action and choose CSV or JSON. Langfuse documents that table filters affect the export, while custom visible-column settings do not limit the exported columns. Inspect the downloaded file before sharing or uploading it elsewhere: hiding a column in the UI is not a data-redaction step.

  • Save the exact filters and timezone with the export.
  • Confirm which object type the table exports.
  • Inspect payload fields and associated scores in the file itself.
03

3. Choose a repeatable route for larger archives

For automated extraction, Langfuse documents exports to blob storage and programmatic access. Review the supported object types and destination configuration for your deployed version. Start with a small completed export before scheduling a large backfill. Use fixed intervals and a stable record identifier when merging batches; retries or overlapping windows must not duplicate your downstream dataset.

04

4. Keep a manifest alongside the files

A manifest records what an archive claims to contain. Fill in the actual counts after reconciliation; leave unknown values null until measured. Preserve checksums separately after the files stop changing. The example below describes the audit structure rather than an executable Langfuse export configuration.

{
  "source": "langfuse",
  "project": "your-project",
  "startInclusive": "2026-09-01T00:00:00Z",
  "endExclusive": "2026-09-02T00:00:00Z",
  "filters": { "environment": "production" },
  "exportRoute": "ui-json",
  "exportedObjectType": "record-the-actual-type",
  "sourceCount": null,
  "uniqueExportedCount": null,
  "missingRelationships": null,
  "verifiedAt": null
}
05

5. Reconcile relationships and scores

Compare unique IDs with the same source filter, then inspect a nested failure and a successful request. Check that scores refer to the intended observation or trace and that timestamps preserve their timezone. A missing parent may sit outside the export interval; record the reason instead of flattening the relationship. Spot-check long or structured inputs so serialization changes do not silently damage useful examples.

06

6. Prepare a separate working dataset

Keep the raw export unchanged and transform only a copy. Select the application input, observed output, and reviewer-approved expected behavior explicitly. Lunary documents a CSV/JSONL dataset import API, but it does not make every Langfuse export a ready-to-import dataset or recreate the source trace history. Keep a row-to-source-ID map, compare inserted counts after import, and validate new application instrumentation before completing the cutover.

A FEW MORE DETAILS

Common questions

Does hiding a Langfuse table column exclude it from export?

No. The official UI export documentation says custom column configuration does not change which columns are exported.

Can I import the file directly as Lunary trace history?

This guide does not claim that capability. Keep an archive, map selected examples for a dataset, and instrument new traffic as separate work.

Should I delete the source data immediately?

Keep it according to your retention policy until reconciliation and the planned migration acceptance checks are complete.

Sources & methodology

Lunary publishes this guide. We compare documented workflows and explain where each approach fits; this is not an independent benchmark or a hands-on product rating. Features, limits, and commercial terms can change. Check the linked vendor documentation before deciding.