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)
Docu: FEEDS-Request / DATAFIELD-Request
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!
Docu: PUT-Request
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!
Docu: PATCH-Request
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!
Docu: DELETE-Request
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.
Docu: JOBS-Request
Request-URL: https://capi.channelpilot.com/jobs/JOB-ID
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

