Skip to main content
The diagnostic is the fastest way to see what’s in a catalog. You upload a CSV or Excel file, FacetFlux profiles it, and you get back a report: how complete each column is, what product types it found, ETIM readiness, and a few sample enrichments. The first runs per tenant are free. It’s a two-step flow: start a diagnostic (returns immediately with an id), then poll until it’s done and fetch the report.

Start a diagnostic

The upload is a raw-body POST — the request body is the file bytes, not multipart form data. Two headers matter:
  • Content-Type — send the exact Excel MIME type application/vnd.openxmlformats-officedocument.spreadsheetml.sheet for .xlsx; any other value is treated as CSV.
  • Content-Disposition — carries the filename, e.g. attachment; filename="catalog.csv".
An optional ?language= query parameter (en or de, default en) sets the report language.
A successful start returns 202 Accepted with { "id": "...", "wasFree": true }. The id identifies the report you’ll poll for.
Only one diagnostic runs per tenant at a time — starting a second while one is active returns 409. Starts are also rate-limited to a few per hour.

Poll for completion

Poll GET /api/v1/diagnostics/{id} until status is completed (or failed):
Python
The poll response carries status (queued / processing / completed / failed), a human-readable phase, progress, and error if it failed.

Read the report

Once completed, fetch the full report:
The report is built in phases, so the fields fill in as the analysis progresses:
  • ProfileaverageCompleteness (overall score) and columns, each with a fillRate, rowsWithValue, uniqueValueCount, and topValues.
  • UnderstandtypeGroups (the product types it detected, each with its own completeness and per-attribute fill rates), a qualityNarrative, and structured issues.
  • ETIM readinessetimReadiness per product type: the matched ETIM class, coverage percentage, and missingFeatures the class expects.
  • Samples — a few samples showing before values and AI suggestions, so you can see the kind of enrichment FacetFlux would produce.
GET /api/v1/diagnostics returns your ten most recent reports (a bare array, newest first).

Turn gaps into values

The diagnostic shows what’s missing. Enrichment fills it — see the Enrichment guide.