{"info":{"_postman_id":"16e7d845-e6a6-4bb4-ad77-a039faea125b","name":"Street Race X API","description":"<html><head></head><body><p>Street Race X is an API focused on bringing together all the street racers in different cities around the world. The runner will be able to qualify with other runners, winning challenges and climbing ranks.</p>\n<p>The API is developed with the latest technologies. API development. JavaScript, TypeScript, Node Js, express Js, JWT and web Socket were used.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"23836360","collectionId":"16e7d845-e6a6-4bb4-ad77-a039faea125b","publishedId":"2sBXqMKKhA","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-07T23:14:53.000Z"},"item":[{"name":"Auth","item":[{"name":"sign in session","id":"362f8802-b789-44e7-a7ee-84dca1a15c43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"Pedro Castaño\",\r\n    \"password\": \"Frutamadre09?\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/auth/sign-in-session","description":"<p>With this route you can start a session with the credentials of a user already created in Firebase, as well as giving you the cookies where is the access_token and refresh_token to perform other actions.</p>\n<p><strong>Fields</strong></p>\n<ul>\n<li><p>username: string (min 2 characters)</p>\n</li>\n<li><p>password: string (numbered 8 characters, 1 mayuscula, 1 number with a special character)</p>\n</li>\n</ul>\n<p><strong>Bad responses</strong></p>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Password doesn't match the user's\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","auth","sign-in-session"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1511b3a9-3c40-4fd0-8a6d-e039c88ba358","name":"sign in","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"pedro\",\r\n    \"password\": \"Frutamadre09?\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/auth/sign-in-session"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbHVnIjoidXNlci1jZGNkMGU3YSIsInVzZXJuYW1lIjoicGVkcm8iLCJlbWFpbCI6InBlZHJvQGdtYWlsLmNvbSIsImxvY2FsaXR5Ijp7InpvbmVfbG9jYWxpY2l0eSI6InN0cmluZyIsInpvbmVfY2l0eSI6InN0cmluZyIsInpvbmVfc3RhdGUiOiJzdHJpbmciLCJ6b25lX2NvdW50cnkiOiJzdHJpbmcifSwicm9sZSI6ImFkbWluIiwiaWF0IjoxNzc4MjEwNjg2LCJleHAiOjE3NzgyMTQyODZ9.NBXWD5GV4wHKYEIaKYZIa-cnHEARwB9BPD5mWbmKQiE; Max-Age=3600; Path=/; Expires=Fri, 08 May 2026 04:24:46 GMT"},{"key":"Set-Cookie","value":"refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbHVnIjoidXNlci1jZGNkMGU3YSIsInVzZXJuYW1lIjoicGVkcm8iLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE3NzgyMTA2ODYsImV4cCI6MTc3ODgxNTQ4Nn0.yTAfG9IsHAFWtXnd06PSAhe4bHcjGuXiPD5F-t_Jef4; Max-Age=604800; Path=/; Expires=Fri, 15 May 2026 03:24:46 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"704"},{"key":"ETag","value":"W/\"2c0-9rL2uoHPos+A2+81uh2Fw7/OPvY\""},{"key":"Date","value":"Fri, 08 May 2026 03:24:46 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"id\": \"754eee8e-9dd7-4559-b2b9-4dc4ea86f6f6\",\n        \"username\": \"pedro\",\n        \"password\": \"$2b$10$3IT0pvC0AIkubkGAWlKtkePxFSASvUi4PVK8BcHJc4ymiK2IgRX9q\",\n        \"email\": \"pedro@gmail.com\",\n        \"locality\": {\n            \"zone_localicity\": \"string\",\n            \"zone_city\": \"string\",\n            \"zone_state\": \"string\",\n            \"zone_country\": \"string\"\n        },\n        \"slug\": \"user-cdcd0e7a\",\n        \"rank\": \"D\",\n        \"victories\": 0,\n        \"defeats\": 0,\n        \"consecutive_victories\": 0,\n        \"state\": \"active\",\n        \"created_at\": \"2026-05-06T22:13:13.818Z\",\n        \"profile_photo\": \"https://res.cloudinary.com/dyr30w7ht/image/upload/v1778105598/users/profile_photos/pj6lnbutmyan8hfwt816.jpg\",\n        \"updated_at\": \"2026-05-06T22:13:17.066Z\",\n        \"public_id_photo\": \"users/profile_photos/pj6lnbutmyan8hfwt816\",\n        \"role\": \"admin\"\n    },\n    \"message\": \"session started\"\n}"}],"_postman_id":"362f8802-b789-44e7-a7ee-84dca1a15c43"},{"name":"sign up session","id":"f7ec38c6-bc47-41d1-bb3b-3d029d9cfecd","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"username","value":"Pedro Castaño","type":"text","uuid":"15f4022c-805f-4636-bb59-daa76d4b9867"},{"key":"password","value":"Frutamadre09?","type":"text","uuid":"6c6d1e23-5b52-4a9a-a2ea-9f407caead85"},{"key":"email","value":"pedrocastano@gmail.com","type":"text","uuid":"b1ff5280-d9ab-4db3-9f9a-864ca8c82d35"},{"key":"locality","value":"{\"zone_localicity\": \"string\", \"zone_city\": \"string\", \"zone_state\": \"string\", \"zone_country\": \"string\"}","type":"text","uuid":"119bc59c-9b0d-49a6-be24-a93fba793bca"},{"key":"profile_photo","type":"file","uuid":"da5591db-e93f-4702-b707-85a2760ae2b3","src":"/C:/Users/andre/Downloads/petroImage.jpg"}]},"url":"http://localhost:8000/api/auth/sign-up-session","description":"<p>With this route you can create a new user account, which will also give you 2 cookies that are access_token and refresh token to start section at once. You can enter the body both by JSON and FORM DATA, FORM DATA is required to upload a profile picture.</p>\n<p><strong>Fields</strong></p>\n<ul>\n<li><p>username: string (min 2 characters)</p>\n</li>\n<li><p>email: string (valid format for emails)</p>\n</li>\n<li><p>password: string (numbered 8 characters, 1 mayuscula, 1 number with a special character)</p>\n</li>\n<li><p>locality: object (must have the fields: zone_localicity, zone_city, zone_state and zone_country, all string)</p>\n</li>\n<li><p>profile_photo: file (must be a png, jpg or jpeg file)</p>\n</li>\n</ul>\n<p><strong>Bad responses</strong></p>\n<p>400</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Only can images jpg, jpeg or png\"\n}\n\n</code></pre>\n<p>409</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User already exist\"\n}\n\n</code></pre>\n<p>409</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Email already exist\"\n}\n\n</code></pre>\n<p>422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Custom error\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","auth","sign-up-session"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"69868131-0cfe-48ec-bcc0-d29cf38ab710","name":"sign up","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"username","value":"andres berdugo","type":"text","uuid":"15f4022c-805f-4636-bb59-daa76d4b9867"},{"key":"password","value":"Frutamadre09?","type":"text","uuid":"6c6d1e23-5b52-4a9a-a2ea-9f407caead85"},{"key":"email","value":"andresberdugo@gmail.com","type":"text","uuid":"b1ff5280-d9ab-4db3-9f9a-864ca8c82d35"},{"key":"locality","value":"{\"zone_localicity\": \"string\", \"zone_city\": \"string\", \"zone_state\": \"string\", \"zone_country\": \"string\"}","type":"text","uuid":"119bc59c-9b0d-49a6-be24-a93fba793bca"},{"key":"profile_photo","type":"file","uuid":"da5591db-e93f-4702-b707-85a2760ae2b3","src":"/C:/Users/andre/Downloads/toyota_2022.png"}]},"url":"http://localhost:8000/api/auth/sign-up-session"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFuZHJlcyBiZXJkdWdvIiwiZW1haWwiOiJhbmRyZXNiZXJkdWdvQGdtYWlsLmNvbSIsImxvY2FsaXR5Ijp7InpvbmVfbG9jYWxpY2l0eSI6InN0cmluZyIsInpvbmVfY2l0eSI6InN0cmluZyIsInpvbmVfc3RhdGUiOiJzdHJpbmciLCJ6b25lX2NvdW50cnkiOiJzdHJpbmcifSwicm9sZSI6InJhY2VyIiwic2x1ZyI6InVzZXItMzU1MzY1YjAiLCJpYXQiOjE3NzgyNDQwOTUsImV4cCI6MTc3ODI0NzY5NX0.0KpW1odOKYOrZNi60DCtc_sp5ArJb3ngRfl9dinWEbw; Max-Age=3600; Path=/; Expires=Fri, 08 May 2026 13:41:35 GMT"},{"key":"Set-Cookie","value":"refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbHVnIjoidXNlci0zNTUzNjViMCIsInVzZXJuYW1lIjoiYW5kcmVzIGJlcmR1Z28iLCJyb2xlIjoicmFjZXIiLCJpYXQiOjE3NzgyNDQwOTUsImV4cCI6MTc3ODg0ODg5NX0.6TC4QYatAIc-uSEPWMLvN1yOIKr8bscRD8o8ltYulec; Max-Age=604800; Path=/; Expires=Fri, 15 May 2026 12:41:35 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"717"},{"key":"ETag","value":"W/\"2cd-XEcSMBOOd43gKnYekD7qE1qMpZ8\""},{"key":"Date","value":"Fri, 08 May 2026 12:41:35 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"username\": \"andres berdugo\",\n        \"password\": \"$2b$10$ExQYRnQAVK1Xx9wUYODOKeLMDcM/97mDDwoDvlf5gQOfGTzRYe3NK\",\n        \"email\": \"andresberdugo@gmail.com\",\n        \"locality\": {\n            \"zone_localicity\": \"string\",\n            \"zone_city\": \"string\",\n            \"zone_state\": \"string\",\n            \"zone_country\": \"string\"\n        },\n        \"profile_photo\": \"https://res.cloudinary.com/dyr30w7ht/image/upload/v1778244094/users/profile_photos/g4peru4ypp4kepivwwin.png\",\n        \"public_id_photo\": \"users/profile_photos/g4peru4ypp4kepivwwin\",\n        \"slug\": \"user-355365b0\",\n        \"rank\": \"D\",\n        \"role\": \"racer\",\n        \"victories\": 0,\n        \"defeats\": 0,\n        \"consecutive_victories\": 0,\n        \"state\": \"active\",\n        \"updated_at\": \"2026-05-08T12:41:31.661Z\",\n        \"created_at\": \"2026-05-08T12:41:31.661Z\",\n        \"id\": \"0b58be4e-8212-432b-b1e8-f72566fd25e2\"\n    },\n    \"message\": \"User create\"\n}"}],"_postman_id":"f7ec38c6-bc47-41d1-bb3b-3d029d9cfecd"},{"name":"logue out session","id":"885796b9-0d3d-4a5f-b4ec-ea8a70521b00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"http://localhost:8000/api/auth/logue-out-session","description":"<p>With logout session you can leave the session, which will delete your cookies and banish your tokens so that no one else can use them.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p><strong>Bad responses</strong></p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Invalid tokens\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Your payload is different\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","auth","logue-out-session"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"767f5502-fafe-4518-bb37-509afa4d65bb","name":"logue out","originalRequest":{"method":"POST","header":[],"url":"http://localhost:8000/api/auth/logue-out-session"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"access_token=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT"},{"key":"Set-Cookie","value":"refresh_token=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT"},{"key":"ETag","value":"W/\"30-tLZ5ngLB0T4Xx/0i4bkxbAogE7o\""},{"key":"Date","value":"Fri, 08 May 2026 12:44:31 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"885796b9-0d3d-4a5f-b4ec-ea8a70521b00"},{"name":"refresh session","id":"fbebdb2b-b477-455a-8024-9f54449ebc1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"andres berdugp\",\r\n    \"password\": \"Frutamadre09?\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/auth/refresh-session","description":"<p>refresh session allows you to refresh your session without having to restart it; if your access_token expires, you can refresh the session and continue using the API</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li>refresh_token</li>\n</ul>\n<p><strong>Bad responses</strong></p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Your payload is different\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Your token is invalid\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","auth","refresh-session"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1cfe5156-ab8e-4f23-953d-bc939c85563e","name":"refresh token","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"andres berdugp\",\r\n    \"password\": \"Frutamadre09?\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/auth/refresh-session"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Set-Cookie","value":"access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InBlZHJvIiwicm9sZSI6ImFkbWluIiwic2x1ZyI6InVzZXItY2RjZDBlN2EiLCJpYXQiOjE3NzgyNDQzODEsImV4cCI6MTc3ODI0Nzk4MX0.oZIQ9ruviy8Gry0sqwdfsiU60jWp3iar5xo0uqnXN8M; Max-Age=3600; Path=/; Expires=Fri, 08 May 2026 13:46:21 GMT"},{"key":"Set-Cookie","value":"refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbHVnIjoidXNlci1jZGNkMGU3YSIsInVzZXJuYW1lIjoicGVkcm8iLCJyb2xlIjoiYWRtaW4iLCJpYXQiOjE3NzgyNDQzODEsImV4cCI6MTc3ODg0OTE4MX0.ZAWLGYYMcr49g4HmbwQK8jDUBF6AImtagbq9oZnMCIY; Max-Age=604800; Path=/; Expires=Fri, 15 May 2026 12:46:21 GMT"},{"key":"ETag","value":"W/\"35-ZvqdbF2qSdDbEddGg0HrICkd4xk\""},{"key":"Date","value":"Fri, 08 May 2026 12:46:21 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"fbebdb2b-b477-455a-8024-9f54449ebc1e"}],"id":"d7844ed5-5a53-45e7-82d1-e128c3a9092a","description":"<p>Auth paths allow the user to perform all login, registration, session exit and refresh the user’s session, as well as generate the respective tokens so that the user can perform certain actions within the API depending on their role, which is validated by means of the token and its role.</p>\n","_postman_id":"d7844ed5-5a53-45e7-82d1-e128c3a9092a"},{"name":"users","item":[{"name":"get users","id":"4da31501-be6c-4ed9-9b05-ad4c3924266e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users?page=1&size=10","description":"<p>With this route you can get users by publication date from the most recent to the oldest, this route has pagination so that you have to pass the size of users and the page you want to see to the route.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p><strong>Bad responses</strong></p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users"],"host":["localhost"],"query":[{"description":{"content":"<p>Page allows you to select the page you want to see from users, if there are 20 users and filter by 10 users per page you will have 2 pages in total.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>The size is the number of users the user wants to see on each page, if a user filters 5 users and there are 20 in total, you will have 4 pages in total.</p>\n","type":"text/plain"},"key":"size","value":"10"}],"variable":[]}},"response":[{"id":"e22fa3e7-5961-42dd-a085-eb636071f6ba","name":"get users","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8000/api/users?page=1&size=10","protocol":"http","host":["localhost"],"port":"8000","path":["api","users"],"query":[{"key":"page","value":"1","description":"Page allows you to select the page you want to see from users, if there are 20 users and filter by 10 users per page you will have 2 pages in total."},{"key":"size","value":"10","description":"The size is the number of users the user wants to see on each page, if a user filters 5 users and there are 20 in total, you will have 4 pages in total."}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1428"},{"key":"ETag","value":"W/\"594-/6tAPQVFdiyKuJOEIRTy7ko+FPU\""},{"key":"Date","value":"Fri, 08 May 2026 12:59:38 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": [\n        {\n            \"id\": \"754eee8e-9dd7-4559-b2b9-4dc4ea86f6f6\",\n            \"username\": \"pedro\",\n            \"password\": \"$2b$10$3IT0pvC0AIkubkGAWlKtkePxFSASvUi4PVK8BcHJc4ymiK2IgRX9q\",\n            \"email\": \"pedro@gmail.com\",\n            \"locality\": {\n                \"zone_localicity\": \"string\",\n                \"zone_city\": \"string\",\n                \"zone_state\": \"string\",\n                \"zone_country\": \"string\"\n            },\n            \"slug\": \"user-cdcd0e7a\",\n            \"rank\": \"D\",\n            \"victories\": 0,\n            \"defeats\": 0,\n            \"consecutive_victories\": 0,\n            \"state\": \"active\",\n            \"created_at\": \"2026-05-06T22:13:13.818Z\",\n            \"profile_photo\": \"https://res.cloudinary.com/dyr30w7ht/image/upload/v1778105598/users/profile_photos/pj6lnbutmyan8hfwt816.jpg\",\n            \"updated_at\": \"2026-05-06T22:13:17.066Z\",\n            \"public_id_photo\": \"users/profile_photos/pj6lnbutmyan8hfwt816\",\n            \"role\": \"admin\"\n        },\n        {\n            \"id\": \"0b58be4e-8212-432b-b1e8-f72566fd25e2\",\n            \"username\": \"andres berdugo\",\n            \"password\": \"$2b$10$ExQYRnQAVK1Xx9wUYODOKeLMDcM/97mDDwoDvlf5gQOfGTzRYe3NK\",\n            \"email\": \"andresberdugo@gmail.com\",\n            \"locality\": {\n                \"zone_localicity\": \"string\",\n                \"zone_city\": \"string\",\n                \"zone_state\": \"string\",\n                \"zone_country\": \"string\"\n            },\n            \"slug\": \"user-355365b0\",\n            \"rank\": \"D\",\n            \"role\": \"racer\",\n            \"victories\": 0,\n            \"defeats\": 0,\n            \"consecutive_victories\": 0,\n            \"state\": \"active\",\n            \"created_at\": \"2026-05-08T12:41:31.661Z\",\n            \"profile_photo\": \"https://res.cloudinary.com/dyr30w7ht/image/upload/v1778244094/users/profile_photos/g4peru4ypp4kepivwwin.png\",\n            \"updated_at\": \"2026-05-08T12:41:35.015Z\",\n            \"public_id_photo\": \"users/profile_photos/g4peru4ypp4kepivwwin\"\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"totalPages\": 1,\n        \"totalItems\": 2\n    },\n    \"message\": \"Users obteined\"\n}"}],"_postman_id":"4da31501-be6c-4ed9-9b05-ad4c3924266e"},{"name":"create user","id":"fa568ec5-0311-4102-b713-ce82a896495c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"username\": \"andres 3w\",\n  \"email\": \"andresc5w@gmail.com\",\n  \"password\": \"Frutamadre09?\",\n  \"locality\": {\n    \"zone_localicity\": \"string\",\n    \"zone_city\": \"string\",\n    \"zone_state\": \"string\",\n    \"zone_country\": \"string\"\n  },\n  \"role\": \"admin\",\n  \"rank\": \"S\",\n  \"victories\": 2,\n  \"defeats\": 3,\n  \"consecutive_victories\": 1\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users","description":"<p>With this route you can create a user just like a sign up session, but this route is exclusive to admins since a broker cannot create a user.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p><strong>Fields</strong></p>\n<ul>\n<li><p>username: string (min 2 characters)</p>\n</li>\n<li><p>email: string (valid format for emails)</p>\n</li>\n<li><p>password: string (numbered 8 characters, 1 mayuscula, 1 number with a special character)</p>\n</li>\n<li><p>locality: object (must have the fields: zone_localicity, zone_city, zone_state and zone_country, all string)</p>\n</li>\n<li><p>profile_photo: file (must be a png, jpg or jpeg file)</p>\n</li>\n<li><p>role: string (admin or racer)</p>\n</li>\n<li><p>rank: string (S, A, B, C, D)</p>\n</li>\n<li><p>victories: number</p>\n</li>\n<li><p>defeats: number</p>\n</li>\n<li><p>consecutive_victories: number</p>\n</li>\n</ul>\n<p>Bad responses</p>\n<p>400</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Only can images jpg, jpeg or png\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>403</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"You cannot create users if you aren't an admin\"\n}\n\n</code></pre>\n<p>409</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User already exist\"\n}\n\n</code></pre>\n<p>409</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Email already exist\"\n}\n\n</code></pre>\n<p>422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Custom error\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"9fae23ca-937e-48df-94b6-5423b04f6957","name":"create user","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"username\": \"andres 3w\",\n  \"email\": \"andresc5w@gmail.com\",\n  \"password\": \"Frutamadre09?\",\n  \"locality\": {\n    \"zone_localicity\": \"string\",\n    \"zone_city\": \"string\",\n    \"zone_state\": \"string\",\n    \"zone_country\": \"string\"\n  },\n  \"role\": \"admin\",\n  \"rank\": \"S\",\n  \"victories\": 2,\n  \"defeats\": 3,\n  \"consecutive_victories\": 1\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"564"},{"key":"ETag","value":"W/\"234-eXJAUzTBoknR677EsAvGyJ8xnzE\""},{"key":"Date","value":"Fri, 08 May 2026 14:13:51 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"username\": \"andres 3w\",\n        \"password\": \"$2b$10$a.BZ.gGfw3CyCta3wefb8eXd1BKOI2twbDUVHqQv8Qh31OPyiY1Ti\",\n        \"email\": \"andresc5w@gmail.com\",\n        \"locality\": {\n            \"zone_localicity\": \"string\",\n            \"zone_city\": \"string\",\n            \"zone_state\": \"string\",\n            \"zone_country\": \"string\"\n        },\n        \"profile_photo\": null,\n        \"public_id_photo\": null,\n        \"slug\": \"user-efede070\",\n        \"rank\": \"S\",\n        \"role\": \"admin\",\n        \"victories\": 2,\n        \"defeats\": 3,\n        \"consecutive_victories\": 1,\n        \"state\": \"active\",\n        \"updated_at\": \"2026-05-08T14:13:49.335Z\",\n        \"created_at\": \"2026-05-08T14:13:49.335Z\",\n        \"id\": \"b333eaa9-4ae4-4fff-8f34-ed24d166a35b\"\n    },\n    \"message\": \"User create\"\n}"}],"_postman_id":"fa568ec5-0311-4102-b713-ce82a896495c"},{"name":"get user by slug","id":"ab55f19f-3ac4-4d52-a2b2-af10cf3e8e78","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8000/api/users/:slug","description":"<p>With this route you can query a user by their slug (unique identifier for routes), which allows you to consult their user information.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p>Bad responses</p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-d40637b0","key":"slug"}]}},"response":[{"id":"30f8d7e3-6532-4cce-8ce8-849b20f4b13e","name":"get user by slug","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8000/api/users/user-d40637b0"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"560"},{"key":"ETag","value":"W/\"230-PLQM6sJowbqYGNZ4fnZekpvd7fQ\""},{"key":"Date","value":"Fri, 08 May 2026 13:15:22 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"id\": \"863b81e0-151e-4573-8ad5-450c102a830c\",\n        \"username\": \"solam\",\n        \"password\": \"$2b$10$xJjEfN1l6RB/4tkxW6XUi.tv63kAruaRsYhaTshQw6BsDb6bP6wHS\",\n        \"email\": \"soalm@gmail.com\",\n        \"locality\": {\n            \"zone_localicity\": \"string\",\n            \"zone_city\": \"string\",\n            \"zone_state\": \"string\",\n            \"zone_country\": \"string\"\n        },\n        \"profile_photo\": null,\n        \"public_id_photo\": null,\n        \"slug\": \"user-d40637b0\",\n        \"rank\": \"D\",\n        \"role\": \"racer\",\n        \"victories\": 0,\n        \"defeats\": 0,\n        \"consecutive_victories\": 0,\n        \"state\": \"active\",\n        \"updated_at\": \"2026-05-08T13:09:42.680Z\",\n        \"created_at\": \"2026-05-08T13:09:42.680Z\"\n    },\n    \"message\": \"User successful\"\n}"}],"_postman_id":"ab55f19f-3ac4-4d52-a2b2-af10cf3e8e78"},{"name":"update user by slug","id":"59750ebd-254d-43cf-94dc-c367f2e9256e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"rank\": \"C\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users/:slug","description":"<p>With this path you can update user data except id, slug, date, updated_at and profile_photo. The profile_photo can be updated in a special path for this. Only the same user and an admin can update a user’s information.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p><strong>Fields</strong></p>\n<ul>\n<li><p>username: string (min 2 characters)</p>\n</li>\n<li><p>email: string (valid format for emails)</p>\n</li>\n<li><p>password: string (numbered 8 characters, 1 mayuscula, 1 number with a special character)</p>\n</li>\n<li><p>locality: object (must have the fields: zone_localicity, zone_city, zone_state and zone_country, all string)</p>\n</li>\n<li><p>role: string (admin or racer)</p>\n</li>\n<li><p>rank: string (S, A, B, C or D)</p>\n</li>\n<li><p>victories: number</p>\n</li>\n<li><p>defeats: number</p>\n</li>\n<li><p>consecutive_victories: number</p>\n</li>\n<li><p>state: string (active, inactive or suspended)</p>\n</li>\n</ul>\n<p>Bad responses</p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n<p>409</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User already exist\"\n}\n\n</code></pre>\n<p>409</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Email already exist\"\n}\n\n</code></pre>\n<p>415</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Content-Type must be application/json\"\n}\n\n</code></pre>\n<p>422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Custom error\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-355365b0","key":"slug"}]}},"response":[{"id":"459201d5-3a6a-488c-bdd2-7ea08dab6ad8","name":"update user by slug","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"andres@gmail.com\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users/user-d40637b0"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"557"},{"key":"ETag","value":"W/\"22d-MkV/cOYP1MNABM6zYJpDdgJRs0Q\""},{"key":"Date","value":"Fri, 08 May 2026 13:16:04 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"id\": \"863b81e0-151e-4573-8ad5-450c102a830c\",\n        \"username\": \"solam\",\n        \"password\": \"$2b$10$xJjEfN1l6RB/4tkxW6XUi.tv63kAruaRsYhaTshQw6BsDb6bP6wHS\",\n        \"email\": \"andres@gmail.com\",\n        \"locality\": {\n            \"zone_localicity\": \"string\",\n            \"zone_city\": \"string\",\n            \"zone_state\": \"string\",\n            \"zone_country\": \"string\"\n        },\n        \"profile_photo\": null,\n        \"public_id_photo\": null,\n        \"slug\": \"user-d40637b0\",\n        \"rank\": \"D\",\n        \"role\": \"racer\",\n        \"victories\": 0,\n        \"defeats\": 0,\n        \"consecutive_victories\": 0,\n        \"state\": \"active\",\n        \"updated_at\": \"2026-05-08T13:16:04.085Z\",\n        \"created_at\": \"2026-05-08T13:09:42.680Z\"\n    },\n    \"message\": \"User update\"\n}"}],"_postman_id":"59750ebd-254d-43cf-94dc-c367f2e9256e"},{"name":"delete user by slug","id":"3f727d00-2ea6-47b2-9244-31badedc8bc3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\r\n    \"type_vehicle\": \"auto\",\r\n    \"brand\": \"toyota\",\r\n    \"model\": \"toyota 2020\",\r\n    \"created_year\": 2020,\r\n    \"color\": \"gris\",\r\n    \"plate\": \"203-314\",\r\n    \"photo\": \"http://imagen/auto/toyota-2020.jpg\",\r\n    \"modifications\": \"motor-v8\"\r\n}"},"url":"http://localhost:8000/api/users/:slug","description":"<p>With this path you can delete a user by their slug (unique identifier for the paths), only the account of yourself can be deleted or an admin can delete an account.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p>Bad responses</p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-d40637b0","key":"slug"}]}},"response":[{"id":"fb8365c4-5092-496d-9f3f-adf51feaa806","name":"delete user by slug","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"{\r\n    \"type_vehicle\": \"auto\",\r\n    \"brand\": \"toyota\",\r\n    \"model\": \"toyota 2020\",\r\n    \"created_year\": 2020,\r\n    \"color\": \"gris\",\r\n    \"plate\": \"203-314\",\r\n    \"photo\": \"http://imagen/auto/toyota-2020.jpg\",\r\n    \"modifications\": \"motor-v8\"\r\n}"},"url":"http://localhost:8000/api/users/user-d40637b0"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"ETag","value":"W/\"22-V6gzAVmlAjG0+qO1gqeAwOhLAYk\""},{"key":"Date","value":"Fri, 08 May 2026 13:16:31 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"3f727d00-2ea6-47b2-9244-31badedc8bc3"},{"name":"update profile photo by slug","id":"a6ff40ac-21a1-458d-be0f-bf4bb8b7e9ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"profile_photo","type":"file","uuid":"ad0eb552-e848-4a71-bee9-9f5db2efd8a7","src":"/C:/Users/andre/Downloads/takumiImage.jpg","disabled":true}]},"url":"http://localhost:8000/api/users/:slug/profile_photo","description":"<p>With this path you can update a user’s profile picture, only the same user or an admin can update the profile picture.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p>Bad responses</p>\n<p>400</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Only can images jpg, jpeg or png\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n<p>415</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Content-Type must be application/json\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug","profile_photo"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-355365b0","key":"slug"}]}},"response":[{"id":"e66f2345-df4a-4eca-8cf0-29632eec176e","name":"update profile photo by slug","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"formdata","formdata":[{"key":"profile_photo","type":"file","uuid":"ad0eb552-e848-4a71-bee9-9f5db2efd8a7","src":"/C:/Users/andre/Downloads/takumiImage.jpg"}]},"url":"http://localhost:8000/api/users/user-6a3bacdc/profile_photo"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"180"},{"key":"ETag","value":"W/\"b4-BqtHzimhr3oKnhWnmwRg5m03gHU\""},{"key":"Date","value":"Fri, 08 May 2026 13:17:27 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"profile_photo\": \"https://res.cloudinary.com/dyr30w7ht/image/upload/v1778246246/users/profile_photos/ivbb3oas3rurirwrfe3s.jpg\"\n    },\n    \"message\": \"Profile photo updated\"\n}"}],"_postman_id":"a6ff40ac-21a1-458d-be0f-bf4bb8b7e9ef"}],"id":"728920b5-4809-4e9a-a3ef-6cf61d917611","description":"<p>User paths allows you to do all operations raw for users, you can: get users, get a user, create a user, update a user, delete a user and update the user’s profile picture. It should be noted that the routes are protected and you must start session with an admin or racer account in order to make options.</p>\n","_postman_id":"728920b5-4809-4e9a-a3ef-6cf61d917611"},{"name":"Vehicles","item":[{"name":"get vehicles by user slug","id":"4b2bd3b6-b8a7-4915-8ab2-2b50c185146c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8000/api/users/:slug/vehicles","description":"<p>With this route you can get the vehicles of a user through the slug of the same user.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug","vehicles"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-51dedfae","key":"slug"}]}},"response":[{"id":"275b0abd-7477-40fc-9eaa-8116b93e558a","name":"get vehicles by user slug","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8000/api/users/user-cdcd0e7a/vehicles"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"551"},{"key":"ETag","value":"W/\"227-+Dyf4H3fbR/xSfAwVTmZm1IJUKo\""},{"key":"Date","value":"Fri, 08 May 2026 13:18:10 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": [\n        {\n            \"id\": \"899544ca-babb-488d-882c-f915ef17c9bf\",\n            \"vehicle_type\": \"car\",\n            \"brand\": \"toyota\",\n            \"model\": \"toyota 2022\",\n            \"year\": 2022,\n            \"color\": \"#FFFFFF\",\n            \"plate\": \"AVC-123\",\n            \"modifications\": \"Super modification\",\n            \"slug\": \"vehicle-577a81ac\",\n            \"created_at\": \"2026-05-08T01:13:46.689Z\",\n            \"user_id\": \"754eee8e-9dd7-4559-b2b9-4dc4ea86f6f6\",\n            \"active\": true,\n            \"public_id_photo\": \"vehicles/vehicle_photo/r9okxa43pp5ilnmgmg2w\",\n            \"photo\": \"https://res.cloudinary.com/dyr30w7ht/image/upload/v1778202831/vehicles/vehicle_photo/r9okxa43pp5ilnmgmg2w.png\"\n        }\n    ],\n    \"message\": \"vehicle got it\"\n}"}],"_postman_id":"4b2bd3b6-b8a7-4915-8ab2-2b50c185146c"},{"name":"create vehicle by user slug","id":"4ad75cf1-9669-42e3-9460-82372be2301e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"vehicle_type","value":"car","type":"text","uuid":"373190ec-13e6-457d-9b41-92c0249e01d3"},{"key":"brand","value":"Toyota","type":"text","uuid":"8e17a5b2-0152-4fdf-968d-27140416a0fb"},{"key":"model","value":"Toyota 2022","type":"text","uuid":"1e0ab340-b82a-4db6-a561-c2da12408783"},{"key":"year","value":"2022","type":"text","uuid":"63c95c4c-f338-4e10-8798-9156ca9d073c"},{"key":"color","value":"#FFFFFF","type":"text","uuid":"aa59aad6-e7f3-46cb-8e5c-d66e302b1855"},{"key":"plate","value":"ABC-123","type":"text","uuid":"e4f8375e-fe48-4e38-85f4-b597cc195171"},{"key":"modifications","value":"New motor with nitro","type":"text","uuid":"e6b8bd31-f847-4d29-91e1-d45158f4d29e"},{"key":"photo","type":"file","uuid":"18939f68-8a78-49f7-9c00-4e7d1f5f9608","src":"/C:/Users/andre/Downloads/toyota_2022.png"}]},"url":"http://localhost:8000/api/users/:slug/vehicles","description":"<p>With this route you can create a vehicle for a user through the slug, there are 2 ways to create a vehicle, by means of JSON or FORM DATA, by means of FORM DATA it is necessary to upload the photo of the vehicle.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p><strong>Fields</strong></p>\n<p>vehicle_type: string (car, motorcycle or skate_board)</p>\n<p>\"brand\": string (minimum 2, maximum 20)</p>\n<p>\"model\": string (minimum 2, maximum 50)</p>\n<p>\"year\": number (only from 1000 to 9999)</p>\n<p>\"color\": string (only hexadecimals)</p>\n<p>\"plate\": string (only 3 characters and 3 numbers)</p>\n<p>\"photo\": file (only png, jpg or jpeg)</p>\n<p>\"modifications\": string (null or maximum 500)</p>\n<p><strong>Bad Request</strong></p>\n<p>400</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Only can images jpg, jpeg or png\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>403</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"You cannot create users if you aren't an admin\"\n}\n\n</code></pre>\n<p>403</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"You cannot create more of 3 vehicles per user\"\n}\n\n</code></pre>\n<p>409</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Vehicle already exist\"\n}\n\n</code></pre>\n<p>422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Custom error\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug","vehicles"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-51dedfae","key":"slug"}]}},"response":[{"id":"77b63539-056c-4529-b66a-8699a21ccb71","name":"create vehicle by user slug","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"vehicle_type\": \"car\",\r\n  \"brand\": \"toyota\",\r\n  \"model\": \"toyota 2023\",\r\n  \"year\": 2023,\r\n  \"color\": \"#FFFFFF\",\r\n  \"plate\": \"ACC-324\",\r\n  \"modifications\": \"NA\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users/user-cdcd0e7a/vehicles"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"383"},{"key":"ETag","value":"W/\"17f-LJFyjSJO6SQFOcumLsac1/v7YUk\""},{"key":"Date","value":"Fri, 08 May 2026 13:18:53 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"vehicle_type\": \"car\",\n        \"brand\": \"toyota\",\n        \"model\": \"toyota 2023\",\n        \"year\": 2023,\n        \"color\": \"#FFFFFF\",\n        \"plate\": \"ACC-324\",\n        \"modifications\": \"NA\",\n        \"slug\": \"vehicle-0f12c804\",\n        \"photo\": null,\n        \"public_id_photo\": null,\n        \"created_at\": \"2026-05-08T13:18:51.747Z\",\n        \"user_id\": \"754eee8e-9dd7-4559-b2b9-4dc4ea86f6f6\",\n        \"active\": false,\n        \"id\": \"e7a10244-d58b-4b79-98aa-e721dff38439\"\n    },\n    \"message\": \"User create\"\n}"}],"_postman_id":"4ad75cf1-9669-42e3-9460-82372be2301e"},{"name":"update vehicle by user slug and plate","id":"6b963b16-30cd-41a1-8895-d553066142e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"brand\": \"mazda\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users/:slug/vehicles/:vehicle_slug","description":"<p>With this route you can update vehicles with license plates and only these, for those without licenses you must use the other route through the slug. This route allows you to update vehicle data except for id, user_id, created_at and profile_photo. For profile_photo, you must use the specific route to update the vehicle image, also if you want to actuate a vehicle to one without a license plate you must pass both the type of vehicle and the license plate field in null and for this route you have to be admin or be the same account user to actuate the vehicle.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p><strong>Fields</strong></p>\n<p>vehicle_type: string (car, motorcycle or skate_board)</p>\n<p>\"brand\": string (minimum 2, maximum 20)</p>\n<p>\"model\": string (minimum 2, maximum 50)</p>\n<p>\"year\": number (only from 1000 to 9999)</p>\n<p>\"color\": string (only hexadecimals)</p>\n<p>\"plate\": string (only 3 characters and 3 numbers)</p>\n<p>\"photo\": file (only png, jpg or jpeg)</p>\n<p>\"modifications\": string (null or maximum 500)</p>\n<p><strong>Bad Request</strong></p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>403</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"You cannot update vehicles if you aren't an admin\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Vehicle not found\"\n}\n\n</code></pre>\n<p>415</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Content-Type must be application/json\"\n}\n\n</code></pre>\n<p>422</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Custom error\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug","vehicles",":vehicle_slug"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-51dedfae","key":"slug"},{"description":{"content":"<p>unique identifier of vehicles for routes</p>\n","type":"text/plain"},"type":"any","value":"vehicle-6586b278","key":"vehicle_slug"}]}},"response":[{"id":"7b38121d-b1ca-4db2-86da-d947958a1f12","name":"update vehicle by user slug and plate","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"plate\": \"OLD-202\",\r\n    \"model\": \"mazda\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users/user-cdcd0e7a/vehicles/plate/AVC-127"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"543"},{"key":"ETag","value":"W/\"21f-nniePUm+skxKVWQxwITKzpQjsow\""},{"key":"Date","value":"Fri, 08 May 2026 13:24:06 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"ok\": true,\n    \"data\": {\n        \"id\": \"2e2c26f9-cd87-4119-8f8d-d03ebe7a4823\",\n        \"vehicle_type\": \"car\",\n        \"brand\": \"toyota\",\n        \"model\": \"mazda\",\n        \"year\": 2022,\n        \"color\": \"#FFFFFF\",\n        \"plate\": \"OLD-202\",\n        \"modifications\": \"Super modification\",\n        \"slug\": \"vehicle-c76a1605\",\n        \"created_at\": \"2026-05-08T01:15:25.870Z\",\n        \"user_id\": \"dce232c2-21e6-4189-9085-f01493803cce\",\n        \"active\": true,\n        \"public_id_photo\": \"vehicles/vehicle_photo/ga6d4ugmq8b7dqkdzgcj\",\n        \"photo\": \"https://res.cloudinary.com/dyr30w7ht/image/upload/v1778202930/vehicles/vehicle_photo/ga6d4ugmq8b7dqkdzgcj.png\"\n    },\n    \"message\": \"Vehicle update\"\n}"}],"_postman_id":"6b963b16-30cd-41a1-8895-d553066142e4"},{"name":"delete vehicle by user slug and plate","id":"7adc8ec7-1cfd-486c-94fb-8ea2a0a06c2f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8000/api/users/:slug/vehicles/:vehicle_slug","description":"<p>With these routes you can remove the vehicle by means of the vehicle license plate, only the same account user or the admin can remove the vehicle.</p>\n<p><strong>Cookies</strong></p>\n<ul>\n<li><p>access_token</p>\n</li>\n<li><p>refresh_token</p>\n</li>\n</ul>\n<p>Bad responses</p>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated\"\n}\n\n</code></pre>\n<p>401</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not authorizated, token invalid or expired\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"User not found\"\n}\n\n</code></pre>\n<p>404</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\nok: false,\nerror: \"Vehicle not found\"\n}\n\n</code></pre>\n","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug","vehicles",":vehicle_slug"],"host":["localhost"],"query":[],"variable":[{"description":{"content":"<p>unique identifier of users for routes</p>\n","type":"text/plain"},"type":"any","value":"user-51dedfae","key":"slug"},{"description":{"content":"<p>unique identifier of vehicles for routes</p>\n","type":"text/plain"},"type":"any","value":"vehicle-6f928b1f","key":"vehicle_slug"}]}},"response":[{"id":"f9485125-cc93-4a06-8291-9e6a1efb4ef1","name":"delete vehicle by user slug and plate","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8000/api/users/user-cdcd0e7a/vehicles/plate/OLD-202"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Vary","value":"Origin"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"ETag","value":"W/\"22-V6gzAVmlAjG0+qO1gqeAwOhLAYk\""},{"key":"Date","value":"Fri, 08 May 2026 13:27:05 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":null}],"_postman_id":"7adc8ec7-1cfd-486c-94fb-8ea2a0a06c2f"}],"id":"c2e3f101-48e9-48ad-b352-84aed4d83f25","description":"<p>The vehicle routes allows you to do all CRUD operations for a user’s vehicles; in order to perform operations, you must use the access_token and on the route the user’s slug. There are special cases where a vehicle does not have a license plate, so to update and eliminate there are 2 more routes with the vehicle’s slug.</p>\n","_postman_id":"c2e3f101-48e9-48ad-b352-84aed4d83f25"},{"name":"Category","item":[{"name":"Get All Categories","id":"36edbf6b-3633-4f2b-947c-2af51a8a42b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8000/api/categories","description":"<p>Returns all available categories. Requires a valid access_token cookie.</p>\n","urlObject":{"protocol":"http","port":"8000","path":["api","categories"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"36edbf6b-3633-4f2b-947c-2af51a8a42b7"},{"name":"Create Category","id":"97bea128-920d-4096-9522-b7f528d3fd0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"street\",\n  \"description\": \"race in streets\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/categories","description":"<p>Creates a new category. Requires a valid access_token cookie and admin role.</p>\n","urlObject":{"protocol":"http","port":"8000","path":["api","categories"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"97bea128-920d-4096-9522-b7f528d3fd0a"},{"name":"Get Category By Id","id":"86d29426-e157-4681-ade3-07e66b12ff0e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:8000/api/categories/:id","description":"<p>Returns a specific category by its ID. Requires a valid access_token cookie.</p>\n","urlObject":{"protocol":"http","port":"8000","path":["api","categories",":id"],"host":["localhost"],"query":[],"variable":[{"id":"4ee7e666-eefd-4781-bde3-4b9fc79d47ff","type":"any","value":"category-id-here","key":"id"}]}},"response":[],"_postman_id":"86d29426-e157-4681-ade3-07e66b12ff0e"},{"name":"Update Category By Id","id":"5a02d751-5c1a-4990-a3df-6406db35f8cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"street updated\",\n  \"description\": \"race in streets updated\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/categories/:id","description":"<p>Updates a category by its ID. Requires a valid access_token cookie and admin role.</p>\n","urlObject":{"protocol":"http","port":"8000","path":["api","categories",":id"],"host":["localhost"],"query":[],"variable":[{"id":"22238fd1-7dae-4e71-bd65-9533e942878a","type":"any","value":"category-id-here","key":"id"}]}},"response":[],"_postman_id":"5a02d751-5c1a-4990-a3df-6406db35f8cd"},{"name":"Delete Category By Id","id":"79a009d9-398b-4716-94d0-39f13e86644b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"http://localhost:8000/api/categories/:id","description":"<p>Deletes a category by its ID. Requires a valid access_token cookie and admin role.</p>\n","urlObject":{"protocol":"http","port":"8000","path":["api","categories",":id"],"host":["localhost"],"query":[],"variable":[{"id":"74c7b193-1ee6-46bd-a9f1-43c33b226f57","type":"any","value":"category-id-here","key":"id"}]}},"response":[],"_postman_id":"79a009d9-398b-4716-94d0-39f13e86644b"}],"id":"882386b4-66bd-4717-b706-638dc3474f28","_postman_id":"882386b4-66bd-4717-b706-638dc3474f28","description":""},{"name":"Challenge","item":[{"name":"create challenge","id":"753cb11a-aefb-4439-ad07-d06aa2cf6b2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"challenger_id\": \"150ee215-9199-4648-9ef5-4a5045acc870\",\r\n  \"challenged_id\": \"754eee8e-9dd7-4559-b2b9-4dc4ea86f6f6\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/challenges","urlObject":{"protocol":"http","port":"8000","path":["api","challenges"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"753cb11a-aefb-4439-ad07-d06aa2cf6b2c"},{"name":"Complete Challenge","id":"83d494a5-7f60-482d-8d2a-61dbe817427a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{token}}"}],"url":"http://localhost:8000/api/challenges/befde398-9c45-4485-9d34-f3d0a8cb3197/complete","urlObject":{"protocol":"http","port":"8000","path":["api","challenges","befde398-9c45-4485-9d34-f3d0a8cb3197","complete"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"83d494a5-7f60-482d-8d2a-61dbe817427a"},{"name":"Start Challenge","id":"427aa4e6-58a0-482c-9f5a-b4d23166ce17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{token}}"}],"url":"http://localhost:8000/api/challenges/befde398-9c45-4485-9d34-f3d0a8cb3197/start","urlObject":{"protocol":"http","port":"8000","path":["api","challenges","befde398-9c45-4485-9d34-f3d0a8cb3197","start"],"host":["localhost"],"query":[],"variable":[]}},"response":[],"_postman_id":"427aa4e6-58a0-482c-9f5a-b4d23166ce17"},{"name":"Cancel Challenge","id":"180723f9-fa00-495b-bfae-308010f7ab81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{token}}"}],"url":"http://localhost:8000/api/challenges/:id/cancel","urlObject":{"protocol":"http","port":"8000","path":["api","challenges",":id","cancel"],"host":["localhost"],"query":[],"variable":[{"type":"any","key":"id"}]}},"response":[],"_postman_id":"180723f9-fa00-495b-bfae-308010f7ab81"},{"name":"Reject Challenge","id":"7d6172f8-2f26-4ced-bd68-825ab6f02165","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{token}}"}],"url":"http://localhost:8000/api/challenges/:id/reject","urlObject":{"protocol":"http","port":"8000","path":["api","challenges",":id","reject"],"host":["localhost"],"query":[],"variable":[{"type":"any","key":"id"}]}},"response":[],"_postman_id":"7d6172f8-2f26-4ced-bd68-825ab6f02165"},{"name":"Accept Challenge","id":"b776ed30-e053-4639-98e5-216874319ce9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Authorization","value":"Bearer {{token}}"}],"url":"http://localhost:8000/api/challenges/:id/accept","urlObject":{"protocol":"http","port":"8000","path":["api","challenges",":id","accept"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"50efe945-bd2a-4371-abfb-509147bf19fe","key":"id"}]}},"response":[],"_postman_id":"b776ed30-e053-4639-98e5-216874319ce9"}],"id":"7174cace-e5d3-4b00-9e3c-530032a131d9","_postman_id":"7174cace-e5d3-4b00-9e3c-530032a131d9","description":""},{"name":"Notifications","item":[{"name":"user rank up by slug notification","id":"3da36a8d-821f-43a4-b7dc-7f83f30b712e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"newRank\": \"A\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8000/api/users/:slug/rank","urlObject":{"protocol":"http","port":"8000","path":["api","users",":slug","rank"],"host":["localhost"],"query":[],"variable":[{"type":"any","value":"user-355365b0","key":"slug"}]}},"response":[],"_postman_id":"3da36a8d-821f-43a4-b7dc-7f83f30b712e"}],"id":"e8c769dd-6dfa-46aa-b75b-d5238aa84c6b","_postman_id":"e8c769dd-6dfa-46aa-b75b-d5238aa84c6b","description":""}]}