API Documentation

Contents

Cardmarket RESTful API Documentation Main Page

Quick Links


Cardmarket API Versions

We have the following API versions running at the live servers:


News

Stock Increase/Decrease

September 2nd, 2021 14:45

/stock/increase /stock/decrease

Now return a bad request error when passing non integer values in the amount field

Wantslist Put Request

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

Fix For stock POST

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.

Added Filter Options for Other Users' Stocks

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.

Limiting the Response for Other Users' Stocks

April 29th, 2021

From now on, we limit the total number of articles returned by requesting the stock of other users to 1.000.

Api Request Limitations (III)

April 15th, 2021

From now on, we only allow one request at a time to the following request groups:

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.

Api v1.0 and v1.1 Shutdown

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

Api Request Limitations (II)

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.

Api Request Limitations

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.

Adding Articles to Shopping Cart Limitations

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.

New Private Message System

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.

Stock Request Limitations

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.

AV5: The Return of the Sandbox

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.

Reminder

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.

Forced Pagination

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.

Bugfixing

April 23rd, 2018

We deployed some fixes to address some bugs, most notably:

Bugfixing

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.

Sandbox Server

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.

Provide Tracking Number to Orders

February 28th, 2018

We introduced a new 2.0 API request for seller to provide a tracking number to an order.

Stock File Requests (2.0) also to return sealed product

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).

API available under Cardmarket.com

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.


Help

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"
    }
    ]
}