{"id":5375,"date":"2025-12-19T16:12:35","date_gmt":"2025-12-19T15:12:35","guid":{"rendered":"https:\/\/www.trans.eu\/api\/?p=5375"},"modified":"2026-05-21T11:16:28","modified_gmt":"2026-05-21T09:16:28","slug":"authorization-process","status":"publish","type":"post","link":"https:\/\/www.trans.eu\/api\/general-information\/authorization-process\/","title":{"rendered":"Authorization process"},"content":{"rendered":"\n<p>Resources exposed by the Trans.eu API are pro\u00adtect\u00aded, which means that every request must be autho\u00adrized and addi\u00adtion\u00adal\u00adly there are <a href=\"#rate_limits\" title>API rate lim\u00adits<\/a> to ensure plat\u00adform sta\u00adbil\u00adi\u00adty.<br>Autho\u00adriza\u00adtion for the Trans.eu API is imple\u00adment\u00aded using the OAuth 2.0 Autho\u00adriza\u00adtion Frame\u00adwork (RFC 6749) with the <strong>Autho\u00adriza\u00adtion Code <\/strong>grant type and requires:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>an <span style=\"text-decoration: underline;\">active Client account<\/span> on the Trans.eu Plat\u00adform (an account can be cre\u00adat\u00aded <a href=\"https:\/\/register.trans.eu\/?lang=en\" target=\"_blank\" rel=\"noopener\" title=\"here\">here<\/a>),<\/li>\n\n\n\n<li>valid <span style=\"text-decoration: underline;\">Client Cre\u00adden\u00adtials<\/span> (client_id, client_secret, api-key) issued dur\u00ading <a href=\"https:\/\/www.trans.eu\/api\/register-your-app\/\" target=\"_blank\" rel=\"noopener\" title=\"Client Application registration\">Client Appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion<\/a>.<\/li>\n<\/ul>\n\n\n\n<p>The autho\u00adriza\u00adtion flow is two-step one-time process and one repeat\u00adable step:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#auth_request\" title=\"Step 1 - Authentication Request\">Step 1 \u2014 Authen\u00adti\u00adca\u00adtion Request to receive autho\u00adriza\u00adtion code<\/a><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#token_request\" title=\"Step 2 - Token Request\">Step 2 \u2014 Token Request to receive access token<\/a><\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#refresh_flow\" title=\"Repeatable Step - Refresh Token Request\">Repeat\u00adable Step \u2014 Refresh Token Request to renew\u00adal access token<\/a><\/li>\n<\/ul>\n\n\n\n<div style=\"height:41px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Authorization Diagram<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"420\" src=\"https:\/\/www.trans.eu\/api\/wp-content\/uploads\/Authorization-diagram-3-1024x420.jpg\" alt class=\"wp-image-5420\" srcset=\"https:\/\/www.trans.eu\/api\/wp-content\/uploads\/Authorization-diagram-3-1024x420.jpg 1024w, https:\/\/www.trans.eu\/api\/wp-content\/uploads\/Authorization-diagram-3-300x123.jpg 300w, https:\/\/www.trans.eu\/api\/wp-content\/uploads\/Authorization-diagram-3-768x315.jpg 768w, https:\/\/www.trans.eu\/api\/wp-content\/uploads\/Authorization-diagram-3.jpg 1067w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"auth_request\">Step 1 \u2014 Authentication Request <\/h2>\n\n\n\n<div style=\"height:39px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. Authentication Request<\/h3>\n\n\n\n<p>The Client ini\u00adti\u00adates the Autho\u00adriza\u00adtion Code flow by send\u00ading an authen\u00adti\u00adca\u00adtion request to the Trans.eu Autho\u00adriza\u00adtion Serv\u00ader.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Authentication Request<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>GET \/oauth2\/auth HTTP\/1.1\nHost: auth.platform.trans.eu<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Request Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Para\u00adme\u00adter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>client_id<\/td><td>required<\/td><td>The Client Iden\u00adti\u00adfi\u00ader issued dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/td><\/tr><tr><td>response_type<\/td><td>required<\/td><td>MUST be set to <code>code<\/code>.<\/td><\/tr><tr><td>state<\/td><td>rec\u00adom\u00admend\u00aded<\/td><td>An opaque val\u00adue used by the Client to main\u00adtain state between the request and the call\u00adback.<br>It SHOULD be a cryp\u00adto\u00adgraph\u00adi\u00adcal\u00adly ran\u00addom string with a min\u00adi\u00admum length of 8 char\u00adac\u00adters.<\/td><\/tr><tr><td>redirect_uri<\/td><td>required<\/td><td>The redi\u00adrec\u00adtion end\u00adpoint to which the Autho\u00adriza\u00adtion Serv\u00ader sends the autho\u00adriza\u00adtion code.<br>The val\u00adue MUST exact\u00adly match one of the redi\u00adrect URIs reg\u00adis\u00adtered for the Client.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Request<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>GET \/oauth2\/auth?client_id=example_app_client_id&amp;response_type=code&amp;state=random_number&amp;redirect_uri=https:\/\/example.com\/applicationendpoint HTTP\/1.1\nHost: auth.platform.trans.eu<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:67px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. User login<\/h3>\n\n\n\n<p>After send\u00ading the request the User pro\u00advides their user\u00adname and pass\u00adword on the Trans.eu Plat\u00adform login page.<\/p>\n\n\n\n<p>For the autho\u00adriza\u00adtion process it is required for users to pro\u00advide cre\u00adden\u00adtials by them\u00adselves. It is also very impor\u00adtant to give the pos\u00adsi\u00adbil\u00adi\u00adty to autho\u00adrize each indi\u00advid\u00adual user sep\u00ada\u00adrate\u00adly.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"487\" src=\"https:\/\/www.trans.eu\/api\/wp-content\/uploads\/image-3.png\" alt class=\"wp-image-5423\" srcset=\"https:\/\/www.trans.eu\/api\/wp-content\/uploads\/image-3.png 686w, https:\/\/www.trans.eu\/api\/wp-content\/uploads\/image-3-300x213.png 300w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\"><\/figure>\n<\/div>\n\n\n<div style=\"height:62px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">C. Authorization Response<\/h3>\n\n\n\n<p>If the User suc\u00adcess\u00adful\u00adly authen\u00adti\u00adcates and grants access, the Autho\u00adriza\u00adtion Serv\u00ader redi\u00adrects the user-agent to the Client\u2019s redi\u00adrec\u00adtion end\u00adpoint with an <strong>autho\u00adriza\u00adtion code<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Authorization Successful Response<\/h4>\n\n\n\n<p>The Autho\u00adriza\u00adtion Serv\u00ader issues an <strong>autho\u00adriza\u00adtion code<\/strong> and returns it to the Client by adding the fol\u00adlow\u00ading para\u00adme\u00adters to the redi\u00adrec\u00adtion URI.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Response Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Para\u00adme\u00adter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>code<\/td><td>required<\/td><td>The autho\u00adriza\u00adtion code gen\u00ader\u00adat\u00aded by the Autho\u00adriza\u00adtion Serv\u00ader.<br>The code is a short-lived, sin\u00adgle-use val\u00adue that MUST be exchanged for an access token.<br>For secu\u00adri\u00adty rea\u00adsons code life\u00adtime is lim\u00adit\u00aded to 1 minute, after that peri\u00adod it becomes invalid.<\/td><\/tr><tr><td>state<\/td><td>required if present in the request<\/td><td>The exact val\u00adue received from the Client in the autho\u00adriza\u00adtion request.<br>The Client SHOULD val\u00adi\u00addate this val\u00adue to mit\u00adi\u00adgate cross-site request forgery (CSRF) attacks.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Successful Response<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>HTTP\/1.1 302 Found\nLocation: https:\/\/example.com\/applicationendpoint?code=authorization_code_value&amp;state=random_number<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Authorization Error Response<\/h4>\n\n\n\n<p>If the autho\u00adriza\u00adtion request is invalid, the User denies access, or an error occurs, the Autho\u00adriza\u00adtion Serv\u00ader redi\u00adrects the user-agent to the Client\u2019s redi\u00adrec\u00adtion end\u00adpoint with an error response.<br><strong>Warn\u00ading:<\/strong> Not every error will cause a redi\u00adrect. If the request fails due to a miss\u00ading, invalid, or mis\u00admatch\u00ading redi\u00adrect URI or client id, the Trans.eu Autho\u00adriza\u00adtion Serv\u00ader will noti\u00adfy the user on its web\u00adsite.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Error Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Para\u00adme\u00adter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>error<\/td><td>required<\/td><td>A sin\u00adgle ASCII error code as defined in OAuth 2.0 (e.g. <code>access_denied, invalid_request, unauthorized_client<\/code>).<\/td><\/tr><tr><td>error_description<\/td><td>option\u00adal<\/td><td>Human-read\u00adable text pro\u00advid\u00ading addi\u00adtion\u00adal infor\u00adma\u00adtion about the error.<\/td><\/tr><tr><td>state<\/td><td>required if present in the request<\/td><td>The exact val\u00adue received from the autho\u00adriza\u00adtion request.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Error Response<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>HTTP\/1.1 302 Found\nLocation: https:\/\/example.com\/applicationendpoint?error=access_denied&amp;error_description=The+resource+owner+denied+the+request&amp;state=random_number<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"token_request\">Step 2 \u2014 Token Request <\/h2>\n\n\n\n<p>The Client exchanges the received autho\u00adriza\u00adtion code for an <strong>access token<\/strong> by mak\u00ading a token request using Client Cre\u00adden\u00adtials. Espe\u00adcial\u00adly Client Secret key MUST be stored secure\u00adly and MUST NOT be exposed in client-side appli\u00adca\u00adtions.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<p>The Autho\u00adriza\u00adtion Serv\u00ader responds with an access token, which MUST be includ\u00aded in any API requests using the <strong>Bear\u00ader Token<\/strong> scheme in the Autho\u00adriza\u00adtion HTTP head\u00ader:<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>Authorization: Bearer &lt;access_token&gt;<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Token Request<\/h4>\n\n\n\n<p>The Token Request head\u00ader MUST include the API key assigned dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Token Request<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>POST \/ext\/auth-api\/accounts\/token HTTP\/1.1\nHost: api.platform.trans.eu\nContent-Type: application\/x-www-form-urlencoded\nApi-key: {unique_app_api-key}<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Request Header &amp; Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Header\/Parameter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>Con\u00adtent-Type (head\u00ader)<\/td><td>required<\/td><td>MUST be set to <code>application\/x-www-form-urlencoded<\/code>.<\/td><\/tr><tr><td>Api-key (head\u00ader)<\/td><td>required<\/td><td>A unique appli\u00adca\u00adtion API key assigned dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/td><\/tr><tr><td>grant_type<\/td><td>required<\/td><td>MUST be set to <code>authorization_code.<\/code><\/td><\/tr><tr><td>code<\/td><td>required<\/td><td>The autho\u00adriza\u00adtion code received from the Autho\u00adriza\u00adtion Response.<br>The code is sin\u00adgle-use and short-lived.<\/td><\/tr><tr><td>redirect_uri<\/td><td>required<\/td><td>The redi\u00adrect URI used in the autho\u00adriza\u00adtion request.<br>The val\u00adue MUST exact\u00adly match the reg\u00adis\u00adtered redi\u00adrect URI from Step 1.<\/td><\/tr><tr><td>client_id<\/td><td>required<\/td><td>&nbsp;The Client Iden\u00adti\u00adfi\u00ader issued dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/td><\/tr><tr><td>client_secret<\/td><td>required<\/td><td>The Client Secret issued dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Request<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>POST \/ext\/auth-api\/accounts\/token HTTP\/1.1\nHost: api.platform.trans.eu\nContent-Type: application\/x-www-form-urlencoded\nApi-key: {unique_app_api-key}\n\ngrant_type=authorization_code&amp;\ncode=a1c94032558c6d0ba98b998299a63135bce063b1&amp;\nredirect_uri=https%3A%2F%2Fexample.com%2Fapplicationendpoint&amp;\nclient_id=example_app_client_id&amp;\nclient_secret=example_app_secret\n<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Token Successful Response<\/h4>\n\n\n\n<p>If the request is valid, the Autho\u00adriza\u00adtion Serv\u00ader returns an access token and the asso\u00adci\u00adat\u00aded <strong>refresh token<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Successful Response Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Para\u00adme\u00adter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>access_token<\/td><td>required<\/td><td>The access token issued by the Autho\u00adriza\u00adtion Serv\u00ader.<\/td><\/tr><tr><td>token_type<\/td><td>required<\/td><td>MUST be set to <code>Bearer<\/code>.<\/td><\/tr><tr><td>expires_in<\/td><td>required<\/td><td>&nbsp;The life\u00adtime of the access token in sec\u00adonds.<\/td><\/tr><tr><td>scope<\/td><td>required<\/td><td>Space sep\u00ada\u00adrat\u00aded list of scopes the access token has access to.<\/td><\/tr><tr><td>refresh_token<\/td><td>required<\/td><td>&nbsp;A token used to obtain a new access token when the cur\u00adrent one expires.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Successful Response<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>HTTP\/1.1 200 OK\nContent-Type: application\/json\n\n{ \n  \"access_token\": \"59d9aa9b15cd59a61fc52014792efb6caa82373b\", \n  \"token_type\": \"Bearer\", \n  \"expires_in\": 21599, \n  \"scope\": \"offers.loads.manage\", \n  \"refresh_token\": \"d52d1d998d6533a3be8e7f26f904be513287938b\" \n}<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Token Error Response<\/h4>\n\n\n\n<p>If the token request is invalid or can\u00adnot be ful\u00adfilled, the serv\u00ader returns an error response.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Error Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Para\u00adme\u00adter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>error<\/td><td>required<\/td><td>One of: <code>invalid_request, invalid_client, invalid_grant, unauthorized_client, unsupported_grant_type<\/code>.<\/td><\/tr><tr><td>error_description<\/td><td>option\u00adal<\/td><td>&nbsp;Human-read\u00adable text describ\u00ading the error.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"refresh_flow\">Repeatable Step \u2014 Refresh Token <\/h2>\n\n\n\n<p>When the access token expires, the Client obtains a new access token by send\u00ading a refresh token request to the Token End\u00adpoint. <\/p>\n\n\n\n<p>The Client SHOULD always store and use the lat\u00adest refresh token returned by the serv\u00ader.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Refresh Token Request<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Refresh Token Request<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>POST \/ext\/auth-api\/accounts\/token HTTP\/1.1\nHost: api.platform.trans.eu\nContent-Type: application\/x-www-form-urlencoded\nApi-key: {unique_app_api-key}<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Request Header &amp; Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Header\/Parameter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>Con\u00adtent-Type (head\u00ader)<\/td><td>required<\/td><td>MUST be set to <code>application\/x-www-form-urlencoded<\/code>.<\/td><\/tr><tr><td>Api-key (head\u00ader)<\/td><td>required<\/td><td>A unique appli\u00adca\u00adtion API key assigned dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/td><\/tr><tr><td>grant_type<\/td><td>required<\/td><td>MUST be set to <code>refresh_token.<\/code><\/td><\/tr><tr><td>refresh_token<\/td><td>required<\/td><td>The refresh token pre\u00advi\u00adous\u00adly issued to the Client by the Autho\u00adriza\u00adtion Serv\u00ader.<\/td><\/tr><tr><td>client_id<\/td><td>required<\/td><td>&nbsp;The Client Iden\u00adti\u00adfi\u00ader issued dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/td><\/tr><tr><td>client_secret<\/td><td>required<\/td><td>The Client Secret issued dur\u00ading client appli\u00adca\u00adtion reg\u00adis\u00adtra\u00adtion.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Request<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>POST \/ext\/auth-api\/accounts\/token HTTP\/1.1\nHost: api.platform.trans.eu\nContent-Type: application\/x-www-form-urlencoded\nApi-key: {unique_app_api-key}\n\ngrant_type=refresh_token&amp;\nrefresh_token=refresh_token_value&amp;\nclient_id=example_app_client_id&amp;\nclient_secret=example_app_secret\n<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Refresh Token Successful Response<\/h4>\n\n\n\n<p>If the request is valid, the Autho\u00adriza\u00adtion Serv\u00ader returns a new <strong>access token<\/strong> and a new <strong>refresh token<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Successful Response Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Para\u00adme\u00adter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>access_token<\/td><td>required<\/td><td>The access token issued by the Autho\u00adriza\u00adtion Serv\u00ader.<\/td><\/tr><tr><td>token_type<\/td><td>required<\/td><td>MUST be set to <code>Bearer<\/code>.<\/td><\/tr><tr><td>expires_in<\/td><td>required<\/td><td>&nbsp;The life\u00adtime of the access token in sec\u00adonds.<\/td><\/tr><tr><td>scope<\/td><td>option\u00adal<\/td><td>Space sep\u00ada\u00adrat\u00aded list of scopes the access token has access to. &nbsp;Includ\u00aded if it dif\u00adfers from the scope pre\u00advi\u00adous\u00adly grant\u00aded.<\/td><\/tr><tr><td>refresh_token<\/td><td>required<\/td><td>&nbsp;A token used to obtain a new access token when the cur\u00adrent one expires.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Successful Response<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>HTTP\/1.1 200 OK\nContent-Type: application\/json\n\n{ \n  \"access_token\": \"59d9aa9b15cd59a61fc52014792efb6caa82373b\", \n  \"token_type\": \"Bearer\", \n  \"expires_in\": 21599, \n  \"refresh_token\": \"d52d1d998d6533a3be8e7f26f904be513287938b\" \n}<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Refresh Token Error Response<\/h4>\n\n\n\n<p>If the refresh token request is invalid or can\u00adnot be ful\u00adfilled, the serv\u00ader returns an error response.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Error Parameters<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<figure class=\"wp-block-table is-style-regular has-small-font-size\"><table><tbody><tr><td>Para\u00adme\u00adter name<\/td><td>Manda\u00adto\u00adry<\/td><td>Descrip\u00adtion<\/td><\/tr><tr><td>error<\/td><td>required<\/td><td>One of: <code>invalid_request, invalid_client, invalid_grant, unauthorized_client, unsupported_grant_type<\/code>.<\/td><\/tr><tr><td>error_description<\/td><td>option\u00adal<\/td><td>&nbsp;Human-read\u00adable text describ\u00ading the error.<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<h6 class=\"wp-block-heading\" style=\"font-style:normal;font-weight:700\">Example Error Response<\/h6>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:85%\">\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>HTTP\/1.1 400 Bad Request\nContent-Type: application\/json\n\n{\n  \"error\": \"invalid_grant\",\n  \"error_description\": \"The refresh token is invalid, expired, revoked, or was issued to a different client.\"\n}\n<\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:72px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rate_limits\">API rate limits<\/h2>\n\n\n\n<p>To ensure plat\u00adform sta\u00adbil\u00adi\u00adty and fair usage, API rate lim\u00adits are applied:<\/p>\n\n\n\n<p>- Token end\u00adpoints: max\u00adi\u00admum 5 requests per sec\u00adond (5 RPS)<br>- All oth\u00ader API end\u00adpoints: max\u00adi\u00admum 15 requests per sec\u00adond (15 RPS)<\/p>\n\n\n\n<p>Requests exceed\u00ading the rate lim\u00adit may result in an <code>HTTP 429 Too Many Requests<\/code> response.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"dont-break-out\">Autho\u00adriza\u00adtion process to Trans.eu API<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5375","post","type-post","status-publish","format-standard","hentry","category-general-information"],"acf":[],"aioseo_notices":[],"lang":"en","translations":{"en":5375},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/posts\/5375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/comments?post=5375"}],"version-history":[{"count":9,"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/posts\/5375\/revisions"}],"predecessor-version":[{"id":6680,"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/posts\/5375\/revisions\/6680"}],"wp:attachment":[{"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/media?parent=5375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/categories?post=5375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trans.eu\/api\/wp-json\/wp\/v2\/tags?post=5375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}