Authorization
headerWe have the following API versions running at the live servers:
November 21st, 2023
We added a set of new requests to the API 2.0. With them, you can request exports of your own stock:
November 21st, 2023
onSale
to Article entity, this is only visible to the owner of the Article.idExpansion
and expansion abbreviation
to short Product entity on the Article entity.June 22st, 2023 10:30
We added a set of new requests to the API 2.0. With them you can request export of other user's offers:
We start the set of requests with some limitations:
March 9th, 2023 23:00
The sandbox server wasn't updated for more than two years and is now officially abandoned
September 2nd, 2021 14:45
/stock/increase /stock/decrease
Now return a bad request error when passing non integer values in the amount field
August 17th, 2021
9:55
Wants List Items PUT request now allows the same wish price values as on the website.
Examples:
The following codes can be used to manipulate prices
+0.02: Increases the price 2 cents
-0.37: Reduces the price by 37 cents
90%: Reduces the price by 10 percent
FROM: Sets the desired price to the lowest available price
SELL: Sets the desired prices to the average selling price
August 16th, 2021
15:04 Changes have been applied again. Counts are now applied correctly and the error message matches the original request
August 3rd, 2021
Fixed a bug that caused the tried field to not match the article when an error occurred while adding new articles.
Edit: The changes have been reverted for the time being due to an incorrect parsing of the amount value. POST Requests made between 09:45 and 15:30 that included multiple articles with different count/amount field would list all articles using the count/amount value of the last article.
June 2nd, 2021
We have added several filter options as query parameters to to the request to access the stock of other users. Please note, that the number of returned articles is still maxed at 1.000. You can now pass filters to further constrain the result set.
April 29th, 2021
From now on, we limit the total number of articles returned by requesting the stock of other users to 1.000.
April 15th, 2021
From now on, we only allow one request at a time to the following request groups:
POST /stock
and PUT /stock
(Stock Management)Every other request sent to either of these groups while another from this group is still being processed on our site, will return a 429 Too Many Requests HTTP status code.
Please make sure to implement a suitable queueing mechanism on your end and make sure to send new requests to either group only after the former successfully responded.
The check (and lock) is evaluated based on the IP of the request. In case you're sharing your IP with another running application from a different user, you could potentially block each other and receive 429s out of obscure reason.
March 11th, 2021
Starting in September, Users will not be able to use the 1.0 and 1.1 Cardmarket API. We're asking all users still using the old API to migrate to the 2.0 API. You'll find our migration guide at API 2.0 Migration Guide
December 15th, 2020
From now on - and in addition to our normal request limits - all requests to the Marketplace are limited to 30.000 per day. Exceeding this limit will return a 429 Too Many Requests
and it applies to the 1.1 versions respectively.
Example: While professionals have a request limit of 100.000 requests per, only 30.000 of those can be used for requests from the marketplace group. If the 30k limit is reached, but not the 100k limit, the remaining requests still can be spent on requests from the order, stock, etc. groups.
November 25th, 2020
From now on, there will be a limit to the requests you can make per minute.
Exceeding this limit will return a 503 Slow Down
response.
The limit is currently 600 requests per minute.
February 20th, 2019
From now on, you will only be able to pass a maximum of 100 articles to PUT Shopping Cart request. Passing more will return a 400 Bad Request
response. This limitation applies to the 1.1 versions respectively.
February 18th, 2019
With the complete refactoring of the Private Message System on Cardmarket, we'll also take down the respective API requests for a short time tomorrow - with the URIs responding with a 404 Not Found. We don't have an ETA for the new system being online again, but expect the respective API requests to work again on Wednesday morning.
However, the changes only affect the backend, so the requests won't be changed.
February 6th, 2019
From now on, you will only be able to pass a maximum of 100 articles to POST, PUT, and DELETE Stock and PUT Stock Quantity requests. Passing more will return a 400 Bad Request
response. This limitation applies to the 1.1 versions respectively.
August 30th, 2018
We are proud to announce that we finally brought back the Sandbox Server. It can be accessed via https://sandbox.cardmarket.com
. Please read the respective notes about it: Sandbox Server.
July 24th, 2018
As a reminder: We're switching off our www.mkmapi.eu
domain at the beginning of August. Please remember to change your applications accordingly and only use api.cardmarket.com
.
Also, we won't support 1.0 requests anymore and they won't be accessible from the beggining of August, too.
July 24th, 2018
We were forced to add a temporary redirect (307 Temporary Redirect) to the Find Products request.
Please make sure to setup your environment accordingly, as sometimes the library/framework (e. g. .NET by default) is automatically following the URLs from the 307 response. As both signatures for the original as well as the redirected requests are different, the redirected itself will respond with a 403 if you don't calculate a new signature for it.
April 23rd, 2018
We deployed some fixes to address some bugs, most notably:
PUT /stock
endpoint and change the values of the isXYZ
flags to either true|false
.April 6th, 2018
Due to some backend changes, several entities contained some incorrect information, e.g. the Order entity of an order, that was merged into another order had a 0
value for the wasMergedInto
instead of the ID of the new order the original order was merged into.
We provided some fixes to the live environment correcting all known bugs with entities.
February 28th, 2018
Unfortunately we had to push back the new sandbox server again. A new projected date, the sandbox server will be available again, is not yet available.
We apologize for any inconveniences this issue causes.
February 28th, 2018
We introduced a new 2.0 API request for seller to provide a tracking number to an order.
January 26th, 2018
The API-Request returning your stock as a file can now also return a file with all sealed product. Please refer to the respective documentation: Stock (File).
January 22nd, 2018
The API is now also available under the Cardmarket.com domain structure. Please make sure to change over your implementation from www.mkmapi.eu
to the new api.cardmarket.com
domain until August 1st, 2018. We will switch off the old domain on that day as well as the API version 1.0.
To effectively help with any problems regarding API requests, we need the following information - as complete as possible and independent from any used programming language, libraries, frameworks, etc.:
We also don't need any implementation steps like base string composition or signature calculation steps, "naked" request information is everything we need.
Example:
Request method + request URI
GET https://api.cardmarket.com/ws/v2.0/output.json/account
Complete request headers
Host: api.cardmarket.com Accept: */* Authorization: OAuth realm="https%3A%2F%2Fapi.cardmarket.com%2Fws%2Fv2.0%2Foutput.json%2Faccount", oauth_consumer_key="XXXXXXXXXXXXXXXX", oauth_token="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", oauth_nonce="5a72bc1e93401", oauth_timestamp="1517468702", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_signature="XXXXXXXXXXXXXXXXXXXXXXXXXXX"
Request body
n/a
HTTP status code
200 OK
Complete response headers
Set-Cookie: PHPSESSID=c3rmrqe616mm2q6617srhi8i81; path=/; secure; HttpOnly Access-Control-Allow-Methods: GET, OPTIONS Content-Type: application/json; charset=utf-8 Access-Control-Allow-Origin: * Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With Access-Control-Expose-Headers: Content-Range, Range Access-Control-Max-Age1000 X-Request-Limit-Count: 1 X-Request-Limit-Max: 50000 Date: Thu, 01 Feb 2018 07:05:05 GMT Expires: Thu, 01 Feb 2018 07:05:05 GMT Content-Length: 1168
Response body, if applicable
{ "account": { "idUser": 123456789, "username": "CranePooleSchmidt", "country": "D", "isCommercial": 1, "maySell": true, "sellerActivation": 3, "riskGroup": 0, "lossPercentage": "0 - 2%", "reputation": 1, "shipsFast": -1, "sellCount": 36, "soldItems": 96, "avgShippingTime": 1, "onVacation": false, "idDisplayLanguage": 1, "name": { "firstName": "Denny", "lastName": "Crane" }, "homeAddress": { "name": "Denny Crane", "extra": null, "street": "500 Boylston Street", "zip": "02116", "city": "Boston", "country": "D" }, "email": "denny.crane@cranepooleschmidt.com", "phoneNumber": "00491234567890", "vat": null, "legalInformation": "", "registerDate": "2011-10-26T09: 20: 12+0200", "isActivated": true, "moneyDetails": { "totalBalance": 24.48, "moneyBalance": 24.44, "bonusBalance": 0.04, "unpaidAmount": 0, "providerRechargeAmount": 0 }, "bankAccount": { "accountOwner": "Denny Crane", "iban": "DENNYCRANE", "bic": "DCBANK", "bankName": "Denny Crane Bank" }, "articlesInShoppingCart": 0, "unreadMessages": 0 }, "links": [ { "rel": "self", "href": "\/account", "method": "GET" }, { "rel": "vacation", "href": "\/account\/vacation", "method": "PUT" }, { "rel": "language", "href": "\/account\/language", "method": "PUT" }, { "rel": "list_message_threads", "href": "\/account\/messages", "method": "GET" }, { "rel": "redeem_coupon", "href": "\/account\/coupon", "method": "POST" } ] }