Skip to main content
Boxpressd normalizes cigar composition into structured tobacco components. The wrapper, binder, and filler fields are arrays. They are never nullable strings.

Cigar fields

origin remains a single canonical country string. It is separate from the region on each composition component.

Tobacco component fields

Nullable fields represent structured details that are unknown or inapplicable. A null does not make the component itself missing. When source data does not contain a wrapper, binder, or filler value, the corresponding array is []. Use label in your UI. When an array contains multiple components, join their labels with ", ":
Normalization happens server-side. Do not infer or normalize geography, shades, or years from label or any other field. Use the structured values exactly as returned.

Controlled wrapper shades

REST serializes display values such as "Maduro". GraphQL serializes enum values such as MADURO and COLORADO_CLARO.

Canonical REST examples

The source value San Andreas normalizes to type: "San Andres" and label: "Mexican San Andres". A comma-separated source becomes one component per value:
Missing composition uses empty arrays:

TypeScript SDK

Install or update the current API client so your application uses the normalized generated types:
Do not copy local versions of these types. Update @boxpressd/api-client and import its latest generated exports. See the JavaScript client guide for ESM and CommonJS setup.