openapi: 3.2.0
info:
title: Product API
version: '2.1'
servers:
- url: https://apis.supplierxm.salsify.com/public/v1/products
security:
- sec0: []
tags:
- name: Product
paths:
/:
get:
summary: List Products
description: This method lists all the products you have access to.
operationId: list-products
parameters:
- name: status_shared_from
in: query
description: Filters the shared status of the source products. (DRAFT=2 / PENDING=3 / ACCEPTED=4 / ARCHIVED=1 / DELETED=0 / PAUSED=6 / REFUSED=5)
schema:
type: integer
format: int32
- name: status_shared_with
in: query
description: Filters the shared status of the target products. (DRAFT=2 / PENDING=3 / ACCEPTED=4 / ARCHIVED=1 / DELETED=0 / PAUSED=6 / REFUSED=5)
schema:
type: integer
format: int32
- name: updated_at_from
in: query
description: Filters the minimum latest update date of the returned products (UNIX timestamp)
schema:
type: string
format: date-time
- name: updated_at_to
in: query
description: Filters the maximum latest update date of the returned products (UNIX timestamp)
schema:
type: string
format: date-time
- name: filter_gtins_in
in: query
description: Filters by GTINs (several possible, comma-separated)
schema:
type: string
default: '03663215000110'
- in: query
name: filter_gmns_in
schema:
type: string
description: Filters by GMNs (several possible, comma-separated)
- name: filter_target_market
in: query
description: Filters by target market (ISO 3166-1 numeric)
schema:
type: integer
format: int32
default: 250
- name: filter_product_languages
in: query
description: Filters by product languages (several possible, comma-separated)
schema:
type: string
default: fr
- name: filter_validation_status_in
in: query
description: Filters the data quality status (validation) of the products (several possible, comma-separated). (NA=0 / NOT OK=1 / OK=2 / CORRECTION=3)
schema:
type: integer
format: int32
- name: filter_has_packshot_new
in: query
description: Filters on products based on the presence/absence a packshot.
schema:
type: boolean
- name: filter_pictures_last_updated_at_from
in: query
description: Filters the minimum latest update date for the images (milliseconds since 01/01/1970)
schema:
type: string
format: date-time
- name: filter_pictures_last_updated_at_to
in: query
description: Filters the maximum latest update date for the images (milliseconds since 01/01/1970)
schema:
type: string
format: date-time
- name: filter_tags_in
in: query
description: Filter products depending on a specific tag. Returns all products for which the specified tag is on
schema:
type: string
- name: filter_tags_not_in
in: query
description: Filter products depending on a specific tag. Returns all products for which the specified tag is off
schema:
type: string
- name: filter_source_include
in: query
description: Filters the fields returned by the API (fields are comma separated)
schema:
type: string
- name: filter_source_exclude
in: query
description: Filters the fields returned by the API (fields are comma separated)
schema:
type: string
- name: filter_quality_changed_at_from
in: query
description: Filters the minimum latest quality update date of the returned products.
schema:
type: string
format: date-time
- name: filter_quality_changed_at_to
in: query
description: Filters the maximum latest quality update date of the returned products.
schema:
type: string
format: date-time
- name: filter_lifecycle_in
in: query
description: Filters the lifecycle status of the source products. (PRELAUNCH=0 / PURCHASABLE=1 / NOT_PURCHASABLE=2 / ARCHIVED=3)
schema:
type: integer
format: int32
- name: filter_is_requested
in: query
description: Identifies products part of the retailer's active range = products you have uploaded to SupplierXM. Products that manufacturers push proactively have a value "false"
schema:
type: boolean
- name: filter_request_product_status_in
in: query
description: Filters by request statuses (several possible, comma-separated). Values ACCEPTED, PENDING, REFUSED, RECIPIENT_NOT_RECONCILED
schema:
type: string
- name: limit
in: query
description: The maximum number of products to be returned. The max value allowed is 500
schema:
type: integer
format: int32
default: 20
- name: offset
in: query
description: The index of the first product to be returned
schema:
type: integer
format: int32
default: 0
- name: next_page
in: query
description: To use scroll search when you need to retrieve more than 10K products (see end of step 3 at https://docs.supplierxm.salsify.com/docs/getting-started for more info)
schema:
type: integer
format: int64
- name: decrypt_price
in: query
description: 'Decrypt price if possible (based on permission). Possible values are : false, true.'
schema:
type: boolean
- name: advanced_search
in: query
description: 'See details in "Search Products": https://docs.supplierxm.salsify.com/reference/search-product'
schema:
type: string
format: json
- name: sort_by
in: query
description: sort the element according to the field specified
schema:
type: string
- name: filter_active_range
in: query
description: '[DEPRECATED] Identifies products part of the retailer''s active range = products you have uploaded to SupplierXM. Products that manufacturers push proactively have a value "false"'
schema:
type: boolean
- name: Accept-language
in: header
description: Filters by expected languages for labels associated to code values
schema:
type: string
default: fr
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"totalResults\": 1,\n \"data\": [\n {\n \"_jsonVersion\": 3,\n \"synonyms\": [],\n \"updatedAt\": \"2017-03-24T09:42:20\",\n \"conservationAdvices\": [],\n \"productionVariantEffectiveDate\": null,\n \"shapeStatement\": [],\n \"productActivities\": [],\n \"keepRefrigeratedAfter\": null,\n \"isConsumerUnit\": true,\n \"compulsoryStatements\": [],\n \"isDerivedFrom\": [],\n \"createdShareValueStatement\": [],\n \"GPC\": {},\n \"isPracticeCompatible\": [],\n \"shape\": null,\n \"serves\": [],\n \"isComplementaryWith\": [],\n \"isDespatchUnit\": null,\n \"originText\": [],\n \"brandHighlight\": [],\n \"isOrderableUnit\": null,\n \"expressedIn\": [\n {\n \"referential\": {\n \"name\": \"languages\"\n },\n \"presentEntities\": [\n {\n \"normalizedCode\": \"fr\",\n \"code\": \"fra-FR\",\n \"description\": \"français\",\n \"label\": \"français\"\n }\n ]\n },\n {\n \"referential\": {\n \"name\": \"netcontents\"\n },\n \"presentEntities\": []\n },\n {\n \"referential\": {\n \"name\": \"currencies\"\n },\n \"presentEntities\": []\n },\n {\n \"referential\": {\n \"name\": \"weights\"\n },\n \"presentEntities\": []\n }\n ],\n \"createdAt\": \"2017-01-03T13:27:07\",\n \"manufactureInsights\": [],\n \"flavorStatement\": [],\n \"hasTags\": [\n {\n \"tag\": \"datavalidated\",\n \"createdAt\": \"2017-03-24T16:46:08\"\n }\n ],\n \"lifeCycle\": 0,\n \"isTaggedBy\": [\n \"datavalidated\"\n ],\n \"substitutes\": [],\n \"manufacturerSharingStatus\": 1,\n \"importClassification\": [],\n \"packagingMentions\": [],\n \"isSharedFrom\": [],\n \"allergens\": [],\n \"additives\": [],\n \"conservations\": [],\n \"hasBatchNumber\": null,\n \"tradeItemDateOnPackagingTypeCode\": null,\n \"packaging\": [],\n \"nameLegal\": [\n {\n \"expressedIn\": {\n \"normalizedCode\": \"fr\",\n \"code\": \"fra-FR\",\n \"description\": \"français\",\n \"label\": \"français\"\n },\n \"data\": \"Soda bien trop sucré\"\n }\n ],\n \"namePublicShort\": [],\n \"productionVariantName\": [],\n \"temperature\": [],\n \"isClassifiedIn\": null,\n \"isWrappedBy\": [],\n \"advertisedInformations\": [],\n \"startAvailabilityDateTime\": null,\n \"endAvailabilityDateTime\": null,\n \"dutyFeeTax\": [],\n \"hasNotableIngredients\": [],\n \"isSizedBy\": [],\n \"environmentStatement\": [],\n \"namePublicLong\": [\n {\n \"expressedIn\": {\n \"normalizedCode\": \"fr\",\n \"code\": \"fra-FR\",\n \"description\": \"français\",\n \"label\": \"français\"\n },\n \"data\": \"Soda \"\n }\n ],\n \"isPromotionalItem\": null,\n \"brand\": {\n \"code\": \"Salsify brand\",\n \"description\": \"Sample description\",\n \"label\": \"Sample label\",\n \"pictureUrl\": \"https://smedia.supplierxm.salsify.com/brand/7919/picture/logo/original.png\"\n },\n \"sparklingValue\": null,\n \"isLabeledBy\": [\n {\n \"startDate\": null,\n \"endDate\": null,\n \"detail\": [],\n \"value\": null,\n \"isConceptualizedBy\": {\n \"code\": \"19096\",\n \"description\": \"Agriculture Biologique Française\",\n \"label\": \"Agriculture Biologique Française\",\n \"pictureUrl\": \"https://smedia.supplierxm.salsify.com/api/1/concept/19096/picture/logo/original.png\"\n },\n \"attributedAt\": null\n }\n ],\n \"kind\": {\n \"code\": \"Soda & autre BSA prête-à-boire\",\n \"description\": \"Soda & autre BSA prête-à-boire\",\n \"label\": \"Soda & autre BSA prête-à-boire\"\n },\n \"replaces\": [],\n \"typePackaging\": {\n \"code\": \"EACH\",\n \"description\": \"Unité de base\",\n \"label\": \"unité de base\"\n },\n \"specializes\": {\n \"isBrandedBy\": {\n \"code\": \"Sample code\",\n \"description\": \"Sample description\",\n \"label\": \"Sample label\"\n },\n \"isIdentifiedBy\": [\n {\n \"reference\": \"00366383600795\"\n }\n ],\n \"kind\": {\n \"code\": \"Soda & autre BSA prête-à-boire\",\n \"description\": \"Soda & autre BSA prête-à-boire\",\n \"label\": \"Soda & autre BSA prête-à-boire\"\n }\n },\n \"owner\": {\n \"type\": 1,\n \"name\": \"Salsify\"\n },\n \"nutritionalAllegations\": [],\n \"isEquivalentTo\": [],\n \"netContent\": [],\n \"history\": [],\n \"netWeight\": [],\n \"priceComparisonType\": null,\n \"originCountry\": null,\n \"isSubstitutableWith\": [],\n \"id\": 4897534,\n \"reasonForNewEAN\": null,\n \"isReplaceableBy\": [],\n \"productBenefits\": [],\n \"suggestedRetailPrice\": [],\n \"isMarkedRecyclable\": null,\n \"composition\": [],\n \"description\": [],\n \"warnings\": [],\n \"grossWeight\": [],\n \"consumptionAdvice\": [],\n \"assets\": {\n \"pictures\": [\n {\n \"definition\": null,\n \"typeOfInformation\": 1,\n \"fileEffectiveEndDateTime\": null,\n \"contentType\": 1,\n \"sequenceNumber\": null,\n \"angleHorizontal\": 0,\n \"format\": null,\n \"url\": \"https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/upload/20170324/a1f1405d-b087-46e8-9974-a76673fbf08c.jpg\",\n \"productFace\": 1,\n \"fileType\": 0,\n \"tags\": [],\n \"isPackshot\": true,\n \"exportables\": [\n {\n \"uniformResourceIdentifier\": \"https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/exportable/a1f1405d-b087-46e8-9974-a76673fbf08c/1024x1024.jpg\",\n \"height\": 1024,\n \"width\": 1024,\n \"fileSize\": 75841,\n \"productpicture_id\": 576944,\n \"updatedAt\": \"2017-03-24T09:42:14\",\n \"crc32\": \"452EFCFE\",\n \"createdAt\": \"2017-03-24T09:42:14\"\n },\n {\n \"uniformResourceIdentifier\": \"https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/exportable/a1f1405d-b087-46e8-9974-a76673fbf08c/512x512.jpg\",\n \"height\": 512,\n \"width\": 512,\n \"fileSize\": 67315,\n \"productpicture_id\": 576944,\n \"updatedAt\": \"2017-03-24T09:42:14\",\n \"crc32\": \"FDA73655\",\n \"createdAt\": \"2017-03-24T09:42:14\"\n },\n {\n \"uniformResourceIdentifier\": \"https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/exportable/a1f1405d-b087-46e8-9974-a76673fbf08c/256x256.jpg\",\n \"height\": 256,\n \"width\": 256,\n \"fileSize\": 51467,\n \"productpicture_id\": 576944,\n \"updatedAt\": \"2017-03-24T09:42:14\",\n \"crc32\": \"6EE9515B\",\n \"createdAt\": \"2017-03-24T09:42:14\"\n },\n {\n \"uniformResourceIdentifier\": \"https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/exportable/a1f1405d-b087-46e8-9974-a76673fbf08c/128x128.jpg\",\n \"height\": 128,\n \"width\": 128,\n \"fileSize\": 15057,\n \"productpicture_id\": 576944,\n \"updatedAt\": \"2017-03-24T09:42:15\",\n \"crc32\": \"0CB9BC04\",\n \"createdAt\": \"2017-03-24T09:42:15\"\n },\n {\n \"uniformResourceIdentifier\": \"https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/exportable/a1f1405d-b087-46e8-9974-a76673fbf08c/64x64.jpg\",\n \"height\": 64,\n \"width\": 64,\n \"fileSize\": 4675,\n \"productpicture_id\": 576944,\n \"updatedAt\": \"2017-03-24T09:42:15\",\n \"crc32\": \"B096DCFC\",\n \"createdAt\": \"2017-03-24T09:42:15\"\n }\n ],\n \"uniformResourceIdentifierOrigin\": null,\n \"updatedAt\": \"2017-03-24T09:42:15\",\n \"ratio\": null,\n \"fileEffectiveStartDateTime\": null,\n \"resolution\": null,\n \"angleVertical\": 1,\n \"createdAt\": \"2017-03-24T09:42:13\",\n \"angleOther\": null\n }\n ],\n \"lastUpdatedAt\": {\n \"pictures\": \"2017-03-24T09:42:15\"\n },\n \"enriched_contents\": [],\n \"videos\": []\n },\n \"isNomadic\": null,\n \"isPartitionedBy\": [],\n \"subdivisions\": {},\n \"contact\": [],\n \"offerOnPack\": null,\n \"isInvoiceUnit\": null,\n \"keepRefrigeratedBefore\": null\n }\n ],\n \"offset\": 0\n}"
schema:
type: object
properties:
totalResults:
type: integer
example: 1
default: 0
data:
type: array
items:
type: object
properties:
_jsonVersion:
type: integer
example: 3
default: 0
synonyms:
type: array
updatedAt:
type: string
example: '2017-03-24T09:42:20'
conservationAdvices:
type: array
productionVariantEffectiveDate: {}
shapeStatement:
type: array
productActivities:
type: array
keepRefrigeratedAfter: {}
isConsumerUnit:
type: boolean
example: true
default: true
compulsoryStatements:
type: array
isDerivedFrom:
type: array
createdShareValueStatement:
type: array
GPC:
type: object
properties: {}
isPracticeCompatible:
type: array
shape: {}
serves:
type: array
isComplementaryWith:
type: array
isDespatchUnit: {}
originText:
type: array
brandHighlight:
type: array
isOrderableUnit: {}
expressedIn:
type: array
items:
type: object
properties:
referential:
type: object
properties:
name:
type: string
example: languages
presentEntities:
type: array
items:
type: object
properties:
normalizedCode:
type: string
example: fr
code:
type: string
example: fra-FR
description:
type: string
example: français
label:
type: string
example: français
createdAt:
type: string
example: '2017-01-03T13:27:07'
manufactureInsights:
type: array
flavorStatement:
type: array
hasTags:
type: array
items:
type: object
properties:
tag:
type: string
example: datavalidated
createdAt:
type: string
example: '2017-03-24T16:46:08'
lifeCycle:
type: integer
example: 0
default: 0
isTaggedBy:
type: array
items:
type: string
example: datavalidated
substitutes:
type: array
manufacturerSharingStatus:
type: integer
example: 1
default: 0
importClassification:
type: array
packagingMentions:
type: array
isSharedFrom:
type: array
allergens:
type: array
additives:
type: array
conservations:
type: array
hasBatchNumber: {}
tradeItemDateOnPackagingTypeCode: {}
packaging:
type: array
nameLegal:
type: array
items:
type: object
properties:
expressedIn:
type: object
properties:
normalizedCode:
type: string
example: fr
code:
type: string
example: fra-FR
description:
type: string
example: français
label:
type: string
example: français
data:
type: string
example: Soda bien trop sucré
namePublicShort:
type: array
productionVariantName:
type: array
temperature:
type: array
isClassifiedIn: {}
isWrappedBy:
type: array
advertisedInformations:
type: array
startAvailabilityDateTime: {}
endAvailabilityDateTime: {}
dutyFeeTax:
type: array
hasNotableIngredients:
type: array
isSizedBy:
type: array
environmentStatement:
type: array
namePublicLong:
type: array
items:
type: object
properties:
expressedIn:
type: object
properties:
normalizedCode:
type: string
example: fr
code:
type: string
example: fra-FR
description:
type: string
example: français
label:
type: string
example: français
data:
type: string
example: 'Soda '
isPromotionalItem: {}
brand:
type: object
properties:
code:
type: string
example: Salsify brand
description:
type: string
example: Sample description
label:
type: string
example: Sample label
pictureUrl:
type: string
example: https://smedia.supplierxm.salsify.com/brand/7919/picture/logo/original.png
sparklingValue: {}
isLabeledBy:
type: array
items:
type: object
properties:
startDate: {}
endDate: {}
detail:
type: array
value: {}
isConceptualizedBy:
type: object
properties:
code:
type: string
example: '19096'
description:
type: string
example: Agriculture Biologique Française
label:
type: string
example: Agriculture Biologique Française
pictureUrl:
type: string
example: https://smedia.supplierxm.salsify.com/api/1/concept/19096/picture/logo/original.png
attributedAt: {}
kind:
type: object
properties:
code:
type: string
example: Soda & autre BSA prête-à-boire
description:
type: string
example: Soda & autre BSA prête-à-boire
label:
type: string
example: Soda & autre BSA prête-à-boire
replaces:
type: array
typePackaging:
type: object
properties:
code:
type: string
example: EACH
description:
type: string
example: Unité de base
label:
type: string
example: unité de base
specializes:
type: object
properties:
isBrandedBy:
type: object
properties:
code:
type: string
example: Sample code
description:
type: string
example: Sample description
label:
type: string
example: Sample label
isIdentifiedBy:
type: array
items:
type: object
properties:
reference:
type: string
example: 00366383600795
kind:
type: object
properties:
code:
type: string
example: Soda & autre BSA prête-à-boire
description:
type: string
example: Soda & autre BSA prête-à-boire
label:
type: string
example: Soda & autre BSA prête-à-boire
owner:
type: object
properties:
type:
type: integer
example: 1
default: 0
name:
type: string
example: Salsify
nutritionalAllegations:
type: array
isEquivalentTo:
type: array
netContent:
type: array
history:
type: array
netWeight:
type: array
priceComparisonType: {}
originCountry: {}
isSubstitutableWith:
type: array
id:
type: integer
example: 4897534
default: 0
reasonForNewEAN: {}
isReplaceableBy:
type: array
productBenefits:
type: array
suggestedRetailPrice:
type: array
isMarkedRecyclable: {}
composition:
type: array
description:
type: array
warnings:
type: array
grossWeight:
type: array
consumptionAdvice:
type: array
assets:
type: object
properties:
pictures:
type: array
items:
type: object
properties:
definition: {}
typeOfInformation:
type: integer
example: 1
default: 0
fileEffectiveEndDateTime: {}
contentType:
type: integer
example: 1
default: 0
sequenceNumber: {}
angleHorizontal:
type: integer
example: 0
default: 0
format: {}
url:
type: string
example: https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/upload/20170324/a1f1405d-b087-46e8-9974-a76673fbf08c.jpg
productFace:
type: integer
example: 1
default: 0
fileType:
type: integer
example: 0
default: 0
tags:
type: array
isPackshot:
type: boolean
example: true
default: true
exportables:
type: array
items:
type: object
properties:
uniformResourceIdentifier:
type: string
example: https://smedia.supplierxm.salsify.com/product/3292988/version/4897534/picture/exportable/a1f1405d-b087-46e8-9974-a76673fbf08c/1024x1024.jpg
height:
type: integer
example: 1024
default: 0
width:
type: integer
example: 1024
default: 0
fileSize:
type: integer
example: 75841
default: 0
productpicture_id:
type: integer
example: 576944
default: 0
updatedAt:
type: string
example: '2017-03-24T09:42:14'
crc32:
type: string
example: 452EFCFE
createdAt:
type: string
example: '2017-03-24T09:42:14'
uniformResourceIdentifierOrigin: {}
updatedAt:
type: string
example: '2017-03-24T09:42:15'
ratio: {}
fileEffectiveStartDateTime: {}
resolution: {}
angleVertical:
type: integer
example: 1
default: 0
createdAt:
type: string
example: '2017-03-24T09:42:13'
angleOther: {}
lastUpdatedAt:
type: object
properties:
pictures:
type: string
example: '2017-03-24T09:42:15'
enriched_contents:
type: array
videos:
type: array
isNomadic: {}
isPartitionedBy:
type: array
subdivisions:
type: object
properties: {}
contact:
type: array
offerOnPack: {}
isInvoiceUnit: {}
keepRefrigeratedBefore: {}
offset:
type: integer
example: 0
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Product
post:
summary: Product Upsert
description: Allow you to write product data
operationId: product-upsert
parameters:
- name: Content-Type
in: header
description: application/json for json format application/xml for xml format
schema:
type: string
default: application/json
requestBody:
content:
application/json:
schema:
type: object
properties:
data:
properties:
gtin:
type: string
description: GTIN of the product
required:
- gtin
type: object
description: List of products
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{''tracking'': 42}'
application/xml:
examples:
Result:
value: 42
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: xml
code: "curl -H 'Authorization: Bearer SALSIFY_TOKEN' -XPOST 'https://apis.supplierxm.salsify.com/public/v1/products' -d '\n\n\n\t\n\t\t03663215000080\n\t\ttrue\n\t\tHello from write API\n\t\n' -H 'Content-Type: application/xml'"
name: HTTP XML
samples-languages:
- xml
tags:
- Product
components:
securitySchemes:
sec0:
in: header
name: Authorization
type: apiKey
x-bearer-format: bearer
x-default: SALSIFY_TOKEN
x-readme-fauxas: true
x-provenance:
method: searched
source: https://docs.supplierxm.salsify.com/reference
harvested: '2026-10-14'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://docs.supplierxm.salsify.com/reference/list-products.md
- https://docs.supplierxm.salsify.com/reference/product-upsert-tracking.md
- https://docs.supplierxm.salsify.com/reference/product-upsert.md
- https://docs.supplierxm.salsify.com/reference/search-product.md
merge:
pages: 4
deduped: 3
conflicts_kept_first: 0