Skip to main content

CAPI Functions

The base URL for all CAPI requests is https://capi.channelpilot.com/

Various functions can be used via CAPI - referred to as requests in the following - to manipulate product data.

  • PUT

  • PATCH

  • DELETE

Please note: The following information is shop-specific.

There is a maximum number of requests that can be sent. This is 60 requests per minute, whereby each request may not contain more than 10,000 SKU (1 request / 10,000 SKU per second).

It is not possible to send 600,000 SKUs and then have them processed one by one. In this case, the request will be rejected directly.

Additional features allow authentication for access to CAPI and various information about the setup.

  • POST - AUTHENTICATION/LOGIN

  • GET - FEEDS/SETUP

  • GET - DATAFIELDS/SETUP

  • GET - ORDERS/SETUP

  • GET - JOBS/ID

POST / AUTHENTICATION - Generation of a Token

All requests require a valid "BearerToken", which can be generated via authentication.

This step should definitely be performed first, since all other requests are dependent on a valid "BearerToken"!

This token is valid for a maximum of 1 hour and must then be renewed via authentication.

The following data is required for this:

  • API-Merchant-ID

  • API-Token

Both information can be retrieved in Channel Pilot Pro in the respective store.

A generated BearerToken is valid for a maximum of 1 hour and must then be renewed via authentication.

Request-/Result-Body:

{
"apiMerchantId": "DummyMerchantId",
"apiToken": "DummyApiToken"
}

{
"expiredAt": "TIMESTAMP",
"access_token": "SAMPLE-TOKEN",
"tokenType": "Bearer"
}

Mandatory information: apiMerchantId, apiToken

GET / SETUP - Provides various information about the setup and requests

It is possible to check the setup at any time and to query it via request. There are various queries that can be performed:

  • Feed-Setup (Request = feeds)

  • Datafield-Setup (Request = datafields)

Request-URL: https://capi.channelpilot.com/REQUEST/setup

Request-/Result-Body:

{ "type": "setup_feeds", 
"result": {
"setups": [
{
"globalFeedId": "fe-3v",
"title": "Masterfeed",
"sourceType": "http",
"identifier": "MASTER",
"maxDuplicatedCustomerArticlesIds": 0,
"lastUpdate": "2018-03-01T12:00:00+01:00",
"lastDownload": "2018-03-01T12:00:00+01:00",
"lastImport": "2018-03-01T12:03:14+01:00",
"numberOfArticles": 1299,
"combineDataFields": true,
"dataSource": {
"sourceType": "http",
"url": "http://myexample.shop/feed.csv",
"userName": "http",
"encoding": "UTF-8",
"compression": "gzip",
"incremental": false,
"bypassCaches": false
},
"dataFormat": {
"format": "csv",
"separator": ",",
"delimiter": "\\",
"maxErrorRowCount": 0,
"headerIncluded": true
}
}
]
}

{ "type": "setup_datafields", 
"result": {
"setups": [
{
"globalId": "d-ev",
"title": "My Datafield 123",
"category": "feed",
"globalFeedId": "f-eV"
}
]
}

Mandatory information: for Orders -> BearerToken, CanalId

PUT - Replacement of product data

PUT can’t be used to delete datafields which are no longer in use, but only to empty them.

This request is used to replace data of articles and overwrite the existing data. If data is no longer sent, it is deleted and is no longer available for the article until it's sent again.

The creation of articles or new attributes is not possible by default, but can be activated!

Request-URL: https://capi.channelpilot.com/feeds/globalFeedId/data

Request-/Result-Body:

[
{
"sku": "MYARTICLE-123/B",
"stock": "2",
"price": "12.32",
"category": "cat1 > cat2 > cat3",
"details": {
"description": "loremp ipsum"
}
}
]

{
"id": "REQUEST/JOB-ID",
"status": "DONE",
"received": "TIMESTAMP",
"started": "TIMESTAMP",
"finished": "TIMESTAMP",
"articles": 500,
"successful": 499,
"message": ""
}

Mandatory information: sku

PATCH - Supplement product data

This request can be used to partially change or add data to an article. Information that is not sent with the request is not lost, it is just ignored.

The creation of articles or new attributes is not possible by default, but can be activated!

Request-URL: https://capi.channelpilot.com/feeds/globalFeedId/data

Request-/Result-Body:

[
{
"sku": "MYARTICLE-123/B",
"stock": "2",
"price": "12.32",
"category": "cat1 > cat2 > cat3",
"details": {
"description": "loremp ipsum"
}
}
]

{
"id": "REQUEST/JOB-ID",
"status": "DONE",
"received": "TIMESTAMP",
"started": "TIMESTAMP",
"finished": "TIMESTAMP",
"articles": 500,
"successful": 499,
"message": ""
}

Mandatory information: sku

DELETE - Deletion of products

This request can be used to delete articles from a store. The entire article and all associated data in the selected store will be removed.

This function is not possible by default, but can be activated!

Request-URL: https://capi.channelpilot.com/feeds/globalFeedId/data

Request-/Result-Body:

[
{
"sku": "MYARTICLE-123/B",
"stock": "2",
"price": "12.32",
"category": "cat1 > cat2 > cat3",
"details": {
"description": "loremp ipsum"
}
}
]

{
"id": "REQUEST/JOB-ID",
"status": "DONE",
"received": "TIMESTAMP",
"started": "TIMESTAMP",
"finished": "TIMESTAMP",
"articles": 500,
"successful": 499,
"message": ""
}

Mandatory information: sku

GET / JOBS - Returns all information about a request

In order to check whether a request / job has run successfully and whether there are any error messages during execution, each request from the last 14 days can be queried again using the job ID. This ID is transmitted as soon as a request is sent to CAPI.

Request-Sample-Body:

{
"type": "job",
"result": {
"id": "REQUEST/JOB-ID",
"jobStatusType": "DONE",
"globalFeedId": "FEED-ID",
"created": "TIMESTAMP",
"modified": "TIMESTAMP",
"articles": 500,
"successful": 499
"message": "POTENTIAL-ERRORMESSAGE"
},
"success": true
}

Mandatory information: job-id

Did this answer your question?