Skip to content

Designed
Get labelling chapter

Request

Returns the labelling chapter: product information, business name and address, ingredient declaration and nutritional information (one entry per linked production chapter), Nutri-Score, claims, additional marketing information, consumer instructions, sorting instructions, GMO risk analysis, custom fields, and the chapter's requirements and documents as references.

The response carries the labelling inputs, which FoodSpecifications_PutLabellingChapter writes, and the content the platform derives (marked readOnly). Derived content comes from the trade item, the production chapters, the finished-product chapter, the labelling-information and claim libraries and the questionnaire answers, and is written there. A section the specification's template disables is null.

Security
oauth2(Required scopes: t1_api)
Path
specificationIdstring, (uuid)required

The unique identifier of the specification

curl -i -X GET \
  'https://apis.traceone.com/spec/v2/food/specifications/{specificationId}/labelling-chapter' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Returns the labelling chapter

Headers
ETagstring

Version tag of the chapter as stored. Pass it back in If-Match on the next write for optimistic concurrency.

Bodyapplication/json
productInformationobject or null(LabellingProductInformationRead)

Section pack_product_info — names, GTIN, net contents, alcohol, final page proof. The product name, the GTIN and the quantities of the trade item's net contents, variable weight and drained net weight are copied from the specification's trade item (tradeItemId) and are readOnly; their eMark and displayOnPack flags are writable (LabellingProductInformationWrite).

nutriScoreobject or null(NutriScoreRead)

Read shape of the nutriscore section — the write INPUTS plus what the platform derives: the nutrient amounts taken from the production chapter's nutrition table, and the computed result. One entry per production chapter linked to the specification.

consumerInstructionsobject or null(ConsumerInstructionsRead)

Section consumer_instruction, as read — the write inputs plus the rendered sentences, generated texts and the values copied from other chapters.

sortingInstructionsobject(SortingInstructions)

Section sorting_instruction — target streams with country-specific components, plus the recycling logos.

displaySortingInstructions is not only a display flag: turning it OFF CLEARS the streams (the platform drops them when the section is not shown on pack). A payload carrying false together with a non-empty streams array is therefore a contradiction, refused with a 422 naming displaySortingInstructions - the streams would otherwise be accepted and then removed.

streams and the countries inside a stream are each replaced in full when supplied; absent or null keeps what the chapter holds (template defaults on a create). A stream is keyed by targetStreamId and a country row by countryId - the same key twice is a 422 naming the second occurrence.

gmoRiskAnalysisobject or null(GmoRiskAnalysisRead)

Section gmo_risk_analysis as read — the inputs plus what the recipe filled in. One row per GMO-risky raw material of the recipe, keyed by materialId and ingredientId (the key GmoRiskAnalysisWrite addresses).

additionalMarketingInformationobject or null(MarketingInformation)

Section pack_marketing_info.

businessNameAndAddressobject or null(BusinessNameAndAddressRead)

Section pack_business_name_and_address, as read. The write inputs plus the rendered sentence and the codes copied from the production sites.

ingredientDeclarationobject(IngredientDeclarationRead)

Read shape of section pack_ingredient_list: one ingredient list per production chapter linked to the specification. The list text is generated from the production chapter's recipe and the declaration rows; overrideText is the text printed instead of it when set. A recipe change regenerates generatedText and leaves overrideText as it stands.

nutritionalInformationobject(NutritionDeclarationRead)

Read shape of section pack_nutrition: one nutrition declaration per production chapter linked to the specification. The per-100 g values, their units and the default serving are copied from the production chapter's nutrition table (written there, see FoodProductionChapterWrite.nutrition). The additional servings, the manual per-serving values, displayToConsumer and the analysis files are labelling inputs (NutritionDeclarationWrite).

claimsArray of objects or null(LabellingClaimRead)

Every claim the chapter carries, manual and automatic alike; automaticallyAdded says which is which. Only the manual ones are writable — see FoodLabellingChapterWrite.claims.

customFieldsArray of objects or null(CustomFields)

Custom field VALUES, one entry per custom component of the chapter. The template places retailer-defined custom components in the chapter; each component is a group of fields with its own published JSON Schema, listed by GET /v2/public/templates/{templateId}/chapters/ {chapterType}/custom-fields-schema. A published component never changes, and the same componentId is valid in every template that uses it.

WRITE RULES

  • An entry replaces the values of its component: a field the values object does not carry is cleared. A component the array does not carry keeps what it holds. null or absent = not supplied.
  • An entry is addressed by componentId. sectionCode is needed only when the component appears in more than one section of the chapter; without it, that is a 422 naming the missing field, customFields[i].sectionCode.
  • A componentId (or componentId + sectionCode) that is not in the chapter, or the same one twice: 422 naming the entry.
  • To change one field, read the entry, change it and send the whole values object back, with If-Match: the ETag of the chapter read. Without it, an edit made in between by the counterpart company is overwritten.
  • values is validated against the component's JSON Schema (types, formats, bounds, reference-list items, files owned by your company). A refusal is a 422 naming the field, customFields[i].values.<field>.
  • Mandatory fields (CustomFieldsSchema mandatoryFields) are not checked on write; they are checked when the section is validated.
  • Who may write follows the section that holds the component: in a custom section either party may write; in a standard section the section's own rule applies (e.g. retailer or supplier sections of the general chapter: owner company only). A read returns one entry per custom component of the chapter, with sectionCode always set.
requirementsArray of objects or null(Requirement)
documentsobject(DocumentSection)
Response
{ "productInformation": { "productName": { … }, "commercialName": { … }, "legalName": { … }, "productDescription": { … }, "productGtin": { … }, "netContents": [ … ], "additionalNetContents": [ … ], "variableWeight": { … }, "drainedNetWeight": { … }, "eMark": { … }, "alcoholVolume": { … }, "finalPageProofFileIds": [ … ] }, "nutriScore": { "entries": [ … ] }, "consumerInstructions": { "storageInstructions": { … }, "preparationInstructions": { … }, "codesAndDates": { … }, "productOrigins": { … } }, "sortingInstructions": { "displaySortingInstructions": true, "streams": [ … ], "otherLogos": { … } }, "gmoRiskAnalysis": { "rawMaterialRisks": [ … ] }, "additionalMarketingInformation": { "information": "string", "displayOnPack": true }, "businessNameAndAddress": { "consumerServiceInformation": { … }, "additionalInformation": { … }, "siteIds": [ … ], "healthMarks": { … }, "packerCodes": { … } }, "ingredientDeclaration": { "languageCode": "en", "entries": [ … ] }, "nutritionalInformation": { "entries": [ … ] }, "claims": [ { … } ], "customFields": [ { … } ], "requirements": [ { … } ], "documents": { "files": [ … ] } }