Skip to main content
POST
Get Unique Values
← Imports After you choose which source column feeds which field, this returns the distinct raw values found in every mapped category column, each with what the system managed to resolve it to. It is the step between mapping columns and mapping values: the user confirms that "ES-Madrid" in their file means the Madrid facility before anything is imported.
It is a POST because you send the mapping in the body. Nothing is imported here — no rows of your data are created. It is not a pure read either: a call that actually resolves values records what it did, so the same call twice leaves two entries in that log. A call that resolves nothing — an empty mapping, or a column whose values are all blank — still returns 200 and writes nothing. Treat it as a step of the flow, not as a query you can poll freely.
Null fields are omitted, not sent as null. The response is serialised with response_model_exclude_none, so a value the system could not resolve comes back without a resolved key at all — not as "resolved": null.This applies to null only: a field that is false or 0 is still sent.Read it as entry.get("resolved") in Python or entry.resolved ?? null in JavaScript. Code that assumes the key is always present will throw on exactly the rows that need human attention.

Request

Headers

string
required
UUID of the organization the import belongs to.Format: UUID
string
Your API key.

Path Parameters

string
required
UUID of the import session, as returned by Create Session.Format: UUID

Body Parameters

object
required
The column mapping the user has chosen: { target_field: source_column }. A target field with no source column is sent as null.Example: { "facility": "Site", "waste_code": "LER", "notes": null }
object
Fixed values for fields that have no source column, as { target_field: value }.A constant on a category column still shows up in the response — as a column with is_constant: true and a single raw value to resolve — so the user confirms it once instead of per row.

Response

array[object]
One entry per mapped category column. Columns that need no value mapping are not listed.

Example

Successful Response

Returns 200 OK.
Note the third entry: no resolved key at all, rather than "resolved": null. Only null fields disappear. truncated and is_constant are false here and are present — exclude_none drops None, not falsy values — so those two you can read directly.

Common Errors

422 Unprocessable Entity

Cause: mapping is missing from the body. It is the only required field.
Cause: import_id is not a valid UUID.

Use Cases

Build the value-mapping screen

Render one section per column. Values with status: matched can be collapsed; suggested shows the candidate with a confirm control; unmatched needs a picker. Sorting by status puts the work that needs a human first.

Do not promise a complete list

When truncated is true, values holds only part of total_unique. Saying “3 values to map” when there are 300 turns into a failed import later — show the real total and page the rest.

Confirm Mapping

Send back the decisions the user made here

Suggest Mapping

The column mapping this endpoint takes as input

Validate Import

The step after the values are mapped

Imports API

The whole import flow, in order