Skip to main content

Article API - Apigee (1.3.0)

Download OpenAPI specification:Download

Article API documentation

Authentication & Authorization

You will need to be identified before calling any endpoints.

In order to be recognized and authorized to access our Sale API, we put in place 2 mechanisms:

  • Authentication mechanism is done with a client id dedicated to you.
    Remember that the client id provided should be shared with care.
    The client id must be inserted in the header of the request in the appropriate field
  • Authorization mechanism is done by a well-known authorization flow for REST Web API: Basic auth flow.

Articles

Article operation with all operation types

Get article data

Get articles data filtered by parameters

Authorizations:
(OAuth2ApiKeyAuth)
query Parameters
pageNumber
integer <int32> (PageNumberParam) [ 1 .. 1000 ]
Default: 1
Example: pageNumber=2

The page number

pageSize
integer <int32> (PageSizeParam) [ 1 .. 1000 ]
Default: 1000
Example: pageSize=2

The page size

lastModifiedDateFrom
string <date-time> (lastModifiedDateFromParam)
Example: lastModifiedDateFrom=2024-05-02T10:00:00

Date from for last update date of data

lastModifiedDateTo
string <date-time> (lastModifiedDateToParam)
Example: lastModifiedDateTo=2024-05-02T10:00:00

Date to for last update date of data

externalRef
string (ExternalRefQueryParam) <= 255 characters
Example: externalRef=1000045

Article reference code of the source

source
string (SourceQueryParam) <= 255 characters
Example: source=GENES

Source application and instance

codes
Array of integers <int64> (CodeListQueryParameter) [ 1 .. 100 ] items [ items <int64 > ]
Example: codes=123,234

List of article code

ean
Array of strings (EanListQueryParameter) [ 1 .. 100 ] items [ items <= 255 characters ]
Example: ean=32974327943,789456

List of ean

withExternalRef
boolean (WithExternalRefQueryParam)
Default: false
Example: withExternalRef=true

Return the external reference if set to true

type
string (TypeQueryParam) [ 1 .. 255 ] characters
Example: type=PRODUCT

The type of the article

category
string (CategoryQueryParam) [ 1 .. 255 ] characters
Example: category=TYRE

The category of the article

withAbbreviations
boolean (WithAbbreviationsQueryParam)
Default: false
Example: withAbbreviations=true

Return two additional fields with brand abbreviation and model abbreviation.

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "articles": [
    ]
}

Create an article or batch create articles

Create a single article using JSON payload or create multiple articles using CSV file upload.

Authorizations:
(OAuth2ApiKeyAuth)
Request Body schema: application/json
active
boolean (ArticleActive)
Default: true

Indicates if the article is active

name
required
string (ArticleName) <= 255 characters

Article name

ean
string (ArticleEan) <= 255 characters

Article ean

brand
string (ArticleBrand) <= 255 characters

Article brand

model
string (ArticleModel) <= 255 characters

Model of the article

type
string (ArticleTypeEnum)
Enum: "PRODUCT" "PACKAGE" "SERVICE"

Type of the article

category
string (ArticleCategoryEnum)
Enum: "TYRE" "OIL" "WIPER" "PADS" "DISK" "VALVE" "TPMS"

Category of the article

clearClassCode
string (ArticleClearClassCode) <= 255 characters

Article clear class code

manufacturerCode
string (TyreManufacturerCode) <= 255 characters

Unique code of a manufacturer

manufacturerArticleCode
string (TyreManufacturerArticleCode) <= 255 characters

Unique code of an article into the manufacturer articles referential

Responses

Request samples

Content type
application/json

Create an article with the given informations

{
  • "active": "true",
  • "name": "Michelin CrossClimate 2 205/55R16 91V",
  • "ean": "3528702522950",
  • "brand": "MICHELIN",
  • "model": "CROSS CONTROL S2",
  • "type": "PRODUCT",
  • "category": "TYRE",
  • "clearClassCode": "LTA11124",
  • "manufacturerCode": "Michelin",
  • "manufacturerArticleCode": "252295"
}

Response samples

Content type
application/json
{
  • "code": "100001",
  • "active": true,
  • "name": "Michelin CrossClimate 2 205/55R16 91V",
  • "ean": "3528702522950",
  • "brand": "MICHELIN",
  • "model": "CROSS CONTROL S2",
  • "type": "PRODUCT",
  • "category": "TYRE",
  • "clearClassCode": "LTA11124",
  • "lastModifiedDate": "2025-07-10T14:30:00Z",
  • "lastModifiedBy": "user1",
  • "manufacturerCode": "Michelin",
  • "manufacturerArticleCode": "252295"
}

Create article data

Create article

Authorizations:
(OAuth2ApiKeyAuth)
Request Body schema: application/json
externalRef
required
string (ExternalRef) <= 255 characters

Article reference code of the source

name
string (ArticleName) <= 255 characters

Article name

brand
string (ArticleBrand) <= 255 characters

Article brand

ean
string (ArticleEan) <= 255 characters

Article ean

clearClassCode
string (ArticleClearClassCode) <= 255 characters

Article clear class code

manufacturerCode
string (TyreManufacturerCode) <= 255 characters

Unique code of a manufacturer

manufacturerArticleCode
string (TyreManufacturerArticleCode) <= 255 characters

Unique code of an article into the manufacturer articles referential

Responses

Request samples

Content type
application/json

Create an article with the given informations

{
  • "externalRef": "12345",
  • "name": "Michelin CrossClimate 2 205/55R16 91V",
  • "ean": "3528702522950",
  • "brand": "MICHELIN",
  • "clearClassCode": "LTA11124",
  • "manufacturerCode": "Michelin",
  • "manufacturerArticleCode": "252295"
}

Response samples

Content type
application/json
{
  • "code": "1000293"
}

Quick search articles data

Quick search articles data (name and code) filtered by parameters

Authorizations:
(OAuth2ApiKeyAuth)
query Parameters
value
required
string (ValueQueryParam) [ 1 .. 255 ] characters
Example: value=MIC%20205%20CROSS

The value contained in the article's name

category
required
string (CategoryQueryParam) [ 1 .. 255 ] characters
Example: category=TYRE

The category of the article

type
required
string (TypeQueryParam) [ 1 .. 255 ] characters
Example: type=PRODUCT

The type of the article

limit
integer <int32> (LimitQueryParam) [ 1 .. 1000 ]
Default: 100
Example: limit=2

The limit size

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Get an article

Retrieve an article by its code

Authorizations:
(OAuth2ApiKeyAuth)
path Parameters
articleCode
required
integer <int64> (ArticleCodeParam)
Example: 100000

Targeted article code

query Parameters
withAbbreviations
boolean (WithAbbreviationsQueryParam)
Default: false
Example: withAbbreviations=true

Return two additional fields with brand abbreviation and model abbreviation.

Responses

Response samples

Content type
application/json
{
  • "code": "1000001",
  • "active": true,
  • "name": "MICHELIN X LINE ENERGY D 315/80 R22.5 156L",
  • "brandAbbreviation": "MICH",
  • "modelAbbreviation": "X LINE ENERGY D",
  • "brand": "MICHELIN",
  • "ean": "3528701653389",
  • "type": "PRODUCT",
  • "category": "TYRE",
  • "clearClassCode": "LTA11124",
  • "lastModifiedDate": "2024-12-27:12:23:23",
  • "lastModifiedBy": "user1"
}

Tyre dimensions

Tyre dimension operation with all operation types

Quick search tyre dimensions data

Quick search tyre dimensions data

Authorizations:
(OAuth2ApiKeyAuth)
query Parameters
value
required
string (SearchTyreDimensionQueryParam) <= 255 characters
Example: value=315 80 22

The tyre dimension to search for

limit
integer <int32> (LimitQueryParam) [ 1 .. 1000 ]
Default: 100
Example: limit=2

The limit size

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Tyres

Tyres operation

Get tyres data

Get tyres data, filtered by parameters, including or excluding extensions.

Authorizations:
(OAuth2ApiKeyAuth)
query Parameters
pageNumber
integer <int32> (PageNumberParam) [ 1 .. 1000 ]
Default: 1
Example: pageNumber=2

The page number

pageSize
integer <int32> (PageSizeParam) [ 1 .. 1000 ]
Default: 1000
Example: pageSize=2

The page size

lastModifiedDateFrom
string <date-time> (lastModifiedDateFromParam)
Example: lastModifiedDateFrom=2024-05-02T10:00:00

Date from for last update date of data

lastModifiedDateTo
string <date-time> (lastModifiedDateToParam)
Example: lastModifiedDateTo=2024-05-02T10:00:00

Date to for last update date of data

code
integer (CodeQueryParameter)
Example: code=123456

Article code

withExternalRef
boolean (WithExternalRefQueryParam)
Default: false
Example: withExternalRef=true

Return the external reference if set to true

name
string (ArticleNameMax100) <= 100 characters
Example: name=MICHELIN CROSSCLIMATE 2 205/55 R16 94 V

shearch the tyre by the name

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "tyres": [
    ]
}

Create a Tyre

Create a Tyre with deduplication on ean and updating the oldest one

Authorizations:
(OAuth2ApiKeyAuth)
Request Body schema: application/json
active
required
boolean (ArticleActive)
Default: true

Indicates if the article is active

name
required
string (ArticleName) <= 255 characters

Article name

ean
required
string (ArticleEan) <= 255 characters

Article ean

manufacturerCode
string (TyreManufacturerCode) <= 255 characters

Unique code of a manufacturer

manufacturerArticleCode
string (TyreManufacturerArticleCode) <= 255 characters

Unique code of an article into the manufacturer articles referential

brand
string (ArticleBrand) <= 255 characters

Article brand

model
string (ArticleModel) <= 255 characters

Model of the article

clearClassCode
string (ArticleClearClassCode) <= 255 characters

Article clear class code

object (tyreAttributesDTO)

Responses

Request samples

Content type
application/json

Create a single tyre with all its attributes

{
  • "active": true,
  • "name": "MICHELIN CROSSCLIMATE 2 205/55 R16 94 V",
  • "brand": "Michelin",
  • "model": "CROSS CONTROL S2",
  • "ean": "32974327943",
  • "clearClassCode": "LTA11124",
  • "manufacturerCode": "Michelin",
  • "manufacturerArticleCode": "252295",
  • "tyreAttributes": {
    }
}

Response samples

Content type
application/json
{
  • "code": "1000293"
}

Upsert a Tyre

Upsert a Tyre from an external source

Authorizations:
(OAuth2ApiKeyAuth)
Request Body schema: application/json
externalRef
required
string (ExternalRef) <= 255 characters

Article reference code of the source

name
required
string (ArticleName) <= 255 characters

Article name

ean
required
string (ArticleEan) <= 255 characters

Article ean

manufacturerCode
string (TyreManufacturerCode) <= 255 characters

Unique code of a manufacturer

manufacturerArticleCode
string (TyreManufacturerArticleCode) <= 255 characters

Unique code of an article into the manufacturer articles referential

brand
string (ArticleBrand) <= 255 characters

Article brand

model
string (ArticleModel) <= 255 characters

Model of the article

clearClassCode
string (ArticleClearClassCode) <= 255 characters

Article clear class code

object (tyreAttributesDTO)

Responses

Request samples

Content type
application/json

Create a single tyre with all its attributes

{
  • "externalRef": "8976479",
  • "name": "MICHELIN CROSSCLIMATE 2 205/55 R16 94 V",
  • "brand": "Michelin",
  • "model": "CROSS CONTROL S2",
  • "ean": "32974327943",
  • "clearClassCode": "LTA11124",
  • "manufacturerCode": "Michelin",
  • "manufacturerArticleCode": "252295",
  • "tyreAttributes": {
    }
}

Response samples

Content type
application/json
{
  • "code": "1000293"
}

Catalog

Catalog operation

add article to catalog

Add a new article to an article's catalog from an external source

Authorizations:
(OAuth2ApiKeyAuth)
Request Body schema: application/json
importExternalRef
string (ImportExternalRef) <= 255 characters

The reference of import for the line

active
required
boolean (ArticleCatalogActive)
Default: true

A flag indicating the operational status of the article within the catalog . hen set to true, the article is considered current, available for sale, visible in listings, and usable in new transactions. When set to false, the article is typically retired, discontinued, or temporarily suspended, and should not be used in new orders

phaseOutDate
string <date> (PhaseOutDate)

Date from which the article does not appear anymore in the manufacturer's catalog, must have the format yyyy-MM-dd

articleExternalRef
required
string (ExternalRef) <= 255 characters

Article reference code of the source

articleName
string (ArticleName) <= 255 characters

Article name

currency
string (Currency)
Enum: "EUR" "GBP" "CHF" "SEK" "DKK" "CZK" "HUF" "PLN" "RON" "BGN"

The currency for the article, based on the ISO 4217 standard

isInherited
boolean (IsInherited)
Default: true

Indicates if the article is inherited from a master catalog or not

Array of objects (PriceList)

Create or update the record based on grossPriceValidDateFrom

Responses

Request samples

Content type
application/json

body for the request

{
  • "importExternalRef": "1092729_12000010122025",
  • "active": true,
  • "phaseOutDate": "2025-01-01",
  • "articleExternalRef": "ART001",
  • "articleName": "Filtre à huile Bosch",
  • "currency": "EUR",
  • "isInherited": true,
  • "prices": [
    ]
}

Response samples

Content type
application/json
{
  • "active": true,
  • "phaseOutDate": "2025-01-01",
  • "articleCode": "1000017",
  • "articleName": "Filtre à huile Bosch",
  • "currency": "EUR",
  • "isInherited": true,
  • "prices": [
    ]
}

add article to catalog

Add a new article to an article's catalog from article code

Authorizations:
(OAuth2ApiKeyAuth)
Request Body schema: application/json
active
required
boolean (ArticleCatalogActive)
Default: true

A flag indicating the operational status of the article within the catalog . hen set to true, the article is considered current, available for sale, visible in listings, and usable in new transactions. When set to false, the article is typically retired, discontinued, or temporarily suspended, and should not be used in new orders

phaseOutDate
string <date> (PhaseOutDate)

Date from which the article does not appear anymore in the manufacturer's catalog, must have the format yyyy-MM-dd

articleCode
required
integer <int64> (ArticleCode)

Article identifier

articleName
string (ArticleName) <= 255 characters

Article name

currency
string (Currency)
Enum: "EUR" "GBP" "CHF" "SEK" "DKK" "CZK" "HUF" "PLN" "RON" "BGN"

The currency for the article, based on the ISO 4217 standard

isInherited
boolean (IsInherited)
Default: true

Indicates if the article is inherited from a master catalog or not

Array of objects (PriceList)

Create or update the record based on grossPriceValidDateFrom

Responses

Request samples

Content type
application/json

body for the request

{
  • "active": true,
  • "phaseOutDate": "2025-01-01",
  • "articleCode": "100736",
  • "articleName": "Filtre à huile Bosch",
  • "currency": "EUR",
  • "isInherited": true,
  • "prices": [
    ]
}

Response samples

Content type
application/json
{
  • "active": true,
  • "phaseOutDate": "2025-01-01",
  • "articleCode": "1000017",
  • "articleName": "Filtre à huile Bosch",
  • "currency": "EUR",
  • "isInherited": true,
  • "prices": [
    ]
}

inactivate entry from export catalog ref

Inactivate all entries regarding the last export in an article's catalog

Authorizations:
(OAuth2ApiKeyAuth)
query Parameters
keepOnly
required
string (KeepOnly) <= 255 characters
Example: keepOnly=1092729_12000010122025

The catalog external reference after the one the clean needs to be done

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Get items from a seller's catalog

Get items from a seller's catalog, filtered by parameters and paginated

Authorizations:
(OAuth2ApiKeyAuth)
path Parameters
sellerCode
required
number (SellerCode)
Example: 1000001

Seller code of the catalog

query Parameters
pageNumber
integer <int32> (PageNumberParam) [ 1 .. 1000 ]
Default: 1
Example: pageNumber=2

The page number

pageSize
integer <int32> (PageSizeParam) [ 1 .. 1000 ]
Default: 1000
Example: pageSize=2

The page size

lastModifiedDateFrom
string <date-time> (lastModifiedDateFromParam)
Example: lastModifiedDateFrom=2024-05-02T10:00:00

Date from for last update date of data

lastModifiedDateTo
string <date-time> (lastModifiedDateToParam)
Example: lastModifiedDateTo=2024-05-02T10:00:00

Date to for last update date of data

category
string (CategoryQueryParam) [ 1 .. 255 ] characters
Example: category=TYRE

Article category

articleName
string (ArticleNameMax100) <= 100 characters
Example: articleName=MICHELIN CROSSCLIMATE 2 205/55 R16 94 V

shearch the tyre by the name

type
string (ArticleType) <= 255 characters
Example: type=PRODUCT

Type of the article

subCategory
string (ArticleSubCategoryEnum)
Enum: "MOUNTING" "FITTING" "WHEEL_ON_OFF" "TURN_ON_RIM" "SWAPPING" "ALIGNMENT" "BALANCING" "REGROOVING" "TYRE_REPAIR" "VALVE" "SPARE_WHEEL" "STUDDING" "PRESSURE" "RETIGHTENING" "TRIP" "STORAGE_FEE" "BREAKDOWN" "CLEANING" "TPMS_SENSOR" "USED_PRODUCT_DISPOSAL"
Example: subCategory=MOUNTING

Sub-category of the article (Specific for services)

vehicleCategoryCode
string (VehicleCategoryCodeQueryParam) [ 1 .. 255 ] characters
Example: vehicleCategoryCode=TRUCK

Category of the vehicle (code of the category into the Category repository)

withInactive
boolean (WithInactiveQueryParam)
Default: false
Example: withInactive=false

Set to true to include inactive articles in the results

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "articlesCatalog": [
    ]
}

Services

Services operation

Get service

Get a service by code

Authorizations:
(OAuth2ApiKeyAuth)
path Parameters
serviceCode
required
integer <int64> (ArticleCodeParam)
Example: 100000

Targeted service code

Responses

Response samples

Content type
application/json
{
  • "code": 100001,
  • "active": false,
  • "name": "Michelin CrossClimate 2 205/55R16 91V",
  • "ean": "3528702522950",
  • "manufacturerCode": "Michelin",
  • "manufacturerArticleCode": "252295",
  • "brand": "MICHELIN",
  • "model": "CROSS CONTROL S2",
  • "category": "TYRE",
  • "clearClassCode": "LTA11124",
  • "brandAbbreviation": "MICH",
  • "modelAbbreviation": "X LINE ENERGY D",
  • "references": [
    ],
  • "lastModifiedDate": "2025-07-10T14:30:00",
  • "lastModifiedBy": "user1",
  • "serviceExtension": {
    }
}