Skip to main content
POST
/
french-label
/
publish
Publish French Eco-Scores to the Affichage Environnemental portal
curl --request POST \
  --url https://api-v2.production.higg.org/pic-api/v1/french-label/publish \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --header 'x-developer-request-token: <api-key>' \
  --data '
{
  "productIds": [
    "<string>"
  ]
}
'
{
  "succeeded": [
    {
      "productId": "<string>",
      "internalReference": "<string>",
      "publishedAt": 123,
      "nextEligibleAt": 123
    }
  ],
  "failed": [
    {
      "productId": "<string>",
      "error": "<string>",
      "httpStatus": 123,
      "code": "<string>"
    }
  ],
  "skipped": [
    {
      "productId": "<string>",
      "reasons": [
        {
          "message": "<string>"
        }
      ],
      "nextEligibleAt": 123,
      "driftedPeer": "<string>"
    }
  ]
}
Submit finalized French Eco-Scores for products in your library to the French government’s Affichage Environnemental portal.
Specify an array of up to 50 product IDs to publish in a single request. IDs must be non-empty, unique, and non-blank.

Request body properties

NameTypeDescription
productIdsArray<string>[REQUIRED] IDs of the products to publish. Must be non-empty, unique, and non-blank. Up to 50 IDs per request.

Implementation details

  • Batch limit: You can publish a maximum of 50 products per request.
  • Eligibility re-check: For each product, the server re-checks eligibility (GTIN, materials, manufacturing country, and other requirements) and enforces the 3-month re-publish lock before any portal call.
  • Status codes: The endpoint returns 200 when every attempted product succeeded, 207 when at least one succeeded and at least one failed, and 400 when every attempted product failed.
  • Result handling: Always inspect failed[] and skipped[] to confirm each product was filed — a 200 does not guarantee every product in the request was published.

Response body properties

NameTypeDescription
succeededArray<object>[REQUIRED] Products accepted by the portal. httpStatus is 201 for a new declaration or 208 when the portal confirms an existing declaration is already on file. publishedAt and nextEligibleAt are populated only on 201; on 208 the previously stored values remain. Products submitted in the same batch share internalReference.
failedArray<object>[REQUIRED] Products the portal rejected or that could not be persisted. error is a human-readable explanation; httpStatus (when present) is the upstream portal status code. Products in the same failed batch carry the same error and httpStatus.
skippedArray<object>[REQUIRED] Products the publish request did not attempt to submit to the portal. Reasons include ownership, the 3-month re-publish lock, a structural eligibility failure, or a concurrent Eco-Score change detected just before submission. nextEligibleAt is set when a reason is WithinThreeMonthLock; it is the Unix-ms timestamp at which the lock expires. driftedPeer is set when a reason is GroupAbortedDueToPeerDrift; it is the productId of the peer whose change caused the batch rollback.

PIC - Update Product with French Eco-Score requirements

PIC - Retrieve French Eco-Score

Refer to the PIC Data Dictionary for more information on French Eco-Score attributes.

Authorizations

x-api-key
string
header
required
x-developer-request-token
string
header
required

Body

application/json

Request body for the French Eco-Score batch publish endpoint. Up to 50 products per request.

productIds
string[]
required

IDs of the products to publish. Must be non-empty, unique, and non-blank. Up to 50 IDs per request.

Response

OK

Aggregate result of a French Eco-Score batch publish request. - succeeded[] — products accepted by the portal. - failed[] — products the portal rejected or that could not be persisted. - skipped[] — products the publish did not attempt (ownership, lock window, eligibility failure, or concurrent score change). Returned with HTTP 200 when every attempted product succeeded, 207 when at least one succeeded and at least one failed, or 400 when every attempted product failed — callers MUST inspect failed[] and skipped[] to confirm individual products were filed.

succeeded
object[]
required
failed
object[]
required
skipped
object[]
required