{"id":6870,"date":"2023-03-14T08:55:39","date_gmt":"2023-03-14T07:55:39","guid":{"rendered":"https:\/\/helpdesk.kontainer.com\/article\/kontainer-api-integration\/"},"modified":"2026-03-12T15:16:14","modified_gmt":"2026-03-12T14:16:14","slug":"kontainer-api-integration","status":"publish","type":"article","link":"https:\/\/helpdesk.kontainer.com\/de\/article\/kontainer-api-integration\/","title":{"rendered":"Kontainer API Integration"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/helpdesk.kontainer.com\/wp-content\/uploads\/2023\/03\/API-integration-HERO-1.png\" alt=\"API Integration header\" width=\"800\" height=\"389\" \/><\/p>\n<p>The Kontainer API provides an easy integration of your existing software into the Kontainer platform. This software-to-software interface allows your applications to exchange data with Kontainer and can be used to automate many different processes.<\/p>\n<p>In the following, we will go through the basics of the API setup.<\/p>\n<p>The information in this article is technical and targeted at developers in charge of API setup. If you have any questions, feel free to let us know.<\/p>\n<blockquote>\n<h2 id=\"apicode\">API Code<\/h2>\n<p><span style=\"color: #00f595;\"><span style=\"color: #000000;\">Get straight to the code for API integration <a style=\"color: #000000;\" href=\"https:\/\/app.kontainer.com\/api\/documentation\" target=\"_blank\" rel=\"noopener\"><strong>HERE<\/strong><\/a>.<\/span> <\/span><\/p>\n<p><em><strong>NOTE<\/strong> that you need to use your unique Kontainer URL instead of the one in the example in the above-listed links (&#8222;api.kontainer.com&#8220;).<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2 id=\"gettingstarted\">Getting Started<\/h2>\n<p>In order to use Kontainer API, you\u2019ll need an account with Kontainer, as well as an API access token.<\/p>\n<p>Please contact your local administrator or\u00a0<a href=\"mailto:support@kontainer.com\" target=\"_blank\" rel=\"noopener noreferrer\">Kontainer Support<\/a> for additional information on how to get access to the Kontainer API.<\/p>\n<h3>Authentication<\/h3>\n<p>The Kontainer API utilizes <em>OAuth<\/em> for authentication. Once you&#8217;ve been given an API access token, you must provide this token in each request via the Authorization header as a &#8222;Bearer&#8220; value.<\/p>\n<p>All requests must include your provided API access token in the Authorization header: <mark><code> Authorization: Bearer {{access-token}}<\/code><\/mark><\/p>\n<h3>Content Negotiation<\/h3>\n<p>All requests\u00a0<strong>must<\/strong>\u00a0include the header:\u00a0<mark><code> Accept: application\/vnd.api+json <\/code><\/mark>.<br \/>\nRequests sending JSON data\u00a0<strong>must<\/strong>\u00a0include the header:\u00a0<mark><code> Content-Type: application\/vnd.api+json <\/code><\/mark><\/p>\n<h3>JSON:API Standard<\/h3>\n<p>The Kontainer API is <em>RESTful<\/em> API following the\u00a0<a href=\"https:\/\/jsonapi.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">JSON API<\/a> standard. You can refer to this standard for more information on how the request and response documents are structured.<\/p>\n<h3>Rate Limits<\/h3>\n<p>The standard API rate limits apply to all endpoints we provide, and the limit is <mark><code> 500<\/code><\/mark> requests per minute. Exceeding the defined rate limit will result in API responding with the response message: <mark><code>429: Too Many Attempts<\/code><\/mark>.<\/p>\n<h3>Response Codes<\/h3>\n<p>The Kontainer API responds with HTTP status codes and JSON-based error codes and messages.<\/p>\n<h3>HTTP Status Codes<\/h3>\n<p>The following table gives an overview of HTTP status codes that are returned.<\/p>\n<table style=\"height: 340px;\" width=\"800\">\n<thead>\n<tr>\n<th style=\"text-align: left;\"><strong>HTTP Status Code<\/strong><\/th>\n<th style=\"text-align: left;\"><strong>Text<\/strong><\/th>\n<th style=\"text-align: left;\"><strong>Description<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">200<\/td>\n<td style=\"text-align: left;\">OK<\/td>\n<td style=\"text-align: left;\">Success.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">201<\/td>\n<td style=\"text-align: left;\">Created<\/td>\n<td style=\"text-align: left;\">Object created.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">204<\/td>\n<td style=\"text-align: left;\">No Content<\/td>\n<td style=\"text-align: left;\">No content returned.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">401<\/td>\n<td style=\"text-align: left;\">Unauthorized<\/td>\n<td style=\"text-align: left;\">Token is missing or invalid.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">403<\/td>\n<td style=\"text-align: left;\">Forbidden<\/td>\n<td style=\"text-align: left;\">Resource or Request not supported<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">404<\/td>\n<td style=\"text-align: left;\">Not Found<\/td>\n<td style=\"text-align: left;\">Object not found.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">406<\/td>\n<td style=\"text-align: left;\">Not Acceptable<\/td>\n<td style=\"text-align: left;\">Request not acceptable<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">409<\/td>\n<td style=\"text-align: left;\">Conflict<\/td>\n<td style=\"text-align: left;\">Application or resource state conflict.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">422<\/td>\n<td style=\"text-align: left;\">Validation Error<\/td>\n<td style=\"text-align: left;\">Validation error occurred.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">429<\/td>\n<td style=\"text-align: left;\">Too Many Requests<\/td>\n<td style=\"text-align: left;\">Rate limit exceeded.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Error Messages<\/h3>\n<p>The following example illustrates how an error messages will looks like for HTTP status code\u00a0<mark><code>401 - Unauthorized<\/code><\/mark>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/helpdesk.kontainer.com\/wp-content\/uploads\/2023\/04\/Screenshot-2023-04-04-at-10.30.42.png\" \/><\/p>\n<h2 id=\"filters\">Filters<\/h2>\n<p>Filters can be applied to supported endpoints to limit the results that are returned. Filters are applied by using the <mark><code>filter<\/code><\/mark> query parameter. You can find the filter fields that are supported in the\u00a0<strong>Filter Attributes<\/strong>\u00a0section of each endpoint.<\/p>\n<p><strong>Examples:<\/strong><\/p>\n<p>Get a list of Category Items\/Products:<\/p>\n<p><mark><code>filter[description][like]<\/code><\/mark>\u00a0:\u00a0<mark><code>Shoes<\/code><\/mark><\/p>\n<p>Find items by exact EAN:<\/p>\n<p><mark><code>filter[ean][eq]<\/code><\/mark>\u00a0:\u00a0<mark><code>4194382028137<\/code><\/mark><\/p>\n<p>Find items after a certain date:<\/p>\n<p><mark><code>filter[released_on][gt]<\/code><\/mark>\u00a0:\u00a0<mark><code>2020-01-01<\/code><\/mark><\/p>\n<p>Find items with unit cost greater or equal to 22.50, and less than 50.00:<\/p>\n<p><mark><code>filter[unit_cost][gte]<\/code><\/mark>\u00a0:\u00a0<mark><code>22.50<\/code><\/mark><\/p>\n<p><mark><code>filter[unit_cost][lt]<\/code><\/mark>\u00a0:\u00a0<mark><code>50.00<\/code><\/mark><\/p>\n<p><strong>Filter Qualifiers<\/strong><\/p>\n<ul>\n<li>Equals: [eq]<\/li>\n<li>In: [in]<\/li>\n<li>Like: [like]<\/li>\n<li>Greater than: [gt]<\/li>\n<li>Greater than or equal: [gte]<\/li>\n<li>Less than: [lt]<\/li>\n<li>Less than or equal: [lte]<\/li>\n<li>Not In: [notin]<\/li>\n<\/ul>\n<p><strong>Note: The allowed filter qualifiers depend on the element being searched.<\/strong><\/p>\n<h2 id=\"compounddocuments\">Compound Documents<\/h2>\n<p><a href=\"https:\/\/jsonapi.org\/format\/#document-compound-documents\" target=\"_blank\" rel=\"noopener noreferrer\">JSONAPI &#8211; Compound Documents<\/a><\/p>\n<p>To reduce the number of HTTP requests, responses on supported endpoints may be requested to &#8222;include&#8220; related resources along with the requested primary resources. Included resources are requested by using the\u00a0<mark><code>include<\/code><\/mark> query parameter. You can find the supported includes in the\u00a0<strong>Available Includes<\/strong>\u00a0section of each endpoint.<\/p>\n<p><strong>Examples:<\/strong><\/p>\n<ul>\n<li>In the\u00a0<strong>GET \/elements<\/strong>\u00a0endpoint, to include the associated Element Options:<mark><code>include: element_option<\/code><\/mark><\/li>\n<li>In the\u00a0<strong>GET \/items<\/strong>\u00a0endppoint, to include the root, parent, and child items:<mark><code>include: parent_item,root_item,children<\/code><\/mark><\/li>\n<\/ul>\n<hr \/>\n<blockquote>\n<h2 id=\"apicode\">API Code<\/h2>\n<p><span style=\"color: #00f595;\"><span style=\"color: #000000;\">Get straight to the code for API integration <a style=\"color: #000000;\" href=\"https:\/\/app.kontainer.com\/api\/documentation\" target=\"_blank\" rel=\"noopener\"><strong>HERE<\/strong><\/a>.<\/span> <\/span><\/p>\n<p><em><strong>NOTE<\/strong> that you need to use your unique Kontainer URL instead of the one in the example in the above-listed links (&#8222;api.kontainer.com&#8220;).<\/em><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>The Kontainer API provides an easy integration of your existing software into the Kontainer platform. This software-to-software interface allows your applications to exchange data with Kontainer and can be used to automate many different processes. In the following, we will go through the basics of the API setup. The information in this article is technical [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","article-category":[112],"article-tag":[117,119,120],"class_list":["post-6870","article","type-article","status-publish","format-standard","hentry","article-category-integrationen-plugins","article-tag-dam","article-tag-pim","article-tag-nur-fur-admins"],"_links":{"self":[{"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/article\/6870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/comments?post=6870"}],"version-history":[{"count":1,"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/article\/6870\/revisions"}],"predecessor-version":[{"id":6871,"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/article\/6870\/revisions\/6871"}],"wp:attachment":[{"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/media?parent=6870"}],"wp:term":[{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/article-category?post=6870"},{"taxonomy":"article-tag","embeddable":true,"href":"https:\/\/helpdesk.kontainer.com\/de\/wp-json\/wp\/v2\/article-tag?post=6870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}